﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be
Imports EVOLTA.Promocion.Bl.Ctrl
Imports System.Windows.Forms
Imports System.Drawing.Printing
Imports System.IO
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Data.SqlClient
Imports System.Data

Partial Class gestionComercial_venta
    Inherits System.Web.UI.Page
    Implements System.Web.UI.ICallbackEventHandler

    Private conyugues As List(Of Ecliente) = Nothing
    Private clientes As List(Of Ecliente) = Nothing

    Private separacionVentaConyuge As List(Of EcliConyCoop) = Nothing
    Private separacionCoopropietarios As List(Of Ecliente) = Nothing
    Private separacionRepresentantes As List(Of Ecliente) = Nothing
    Private separacionConyugue As Ecliente = Nothing
    Private posibleClientes As List(Of EposibleCliente) = Nothing
    Private TpoDcmtos As List(Of EtpoDcmto) = Nothing
    Private estadoCivils As List(Of EestadoCivil) = Nothing
    Private estudios As List(Of Eestudio) = Nothing
    Private profesions As List(Of Eprofesion) = Nothing
    Private entFinancieras As List(Of EentidadFin) = Nothing
    Private apoderados As List(Of Ecliente) = Nothing
    Private Coopropietarios As List(Of Ecliente) = Nothing
    Private Representantes As List(Of Ecliente) = Nothing
    Private ocupacions As List(Of Eocupacion) = Nothing
    Private proformas As List(Of EproformaCabecera) = Nothing
    Private proformasDetalle As List(Of EproformaDetalle) = Nothing
    Private separacionVenta As List(Of EseparacionVenta) = Nothing
    Private separacionVentaDetalle As List(Of EseparacionVentaDetalle) = Nothing
    Private separacionVentaPagos As List(Of EseparacionVentaDetallePagos) = Nothing
    Private vValoresMontos As String = Nothing
    Private jsMensaje As String = Nothing

#Region "           Formulario                                  "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            Dim evolta As Eevolta = CType(Session("sEVOLTA"), Eevolta)
            If Not evolta Is Nothing Then
                evolta.chkVisible = True
                Session("sEVOLTA") = evolta
            Else
                Response.Redirect(ConfigurationManager.AppSettings("cerrar").ToString)
            End If
            hdfIdProyecto.Value = Me.Master.idProyecto
            hdfIdEtapa.Value = Me.Master.idEtapa
            hdfEmpresa.Value = Me.Master.descEmpresa
            hdfIdUsuario.Value = Me.Master.idUsuario
            hdfdescProyecto.Value = Me.Master.descProyecto
            hdfdescEtapa.Value = Me.Master.descEtapa

            hdfNuevo.Value = "nuevo"
            uphdfNuevo.Update()
            deshabilitarControles(True)
            Me.sDetalleSeparacion = Nothing
            Me.sCoopropietarios = Nothing
            Me.sRepresentantes = Nothing
            Me.sDetalleSeparacionPagosCtaInicial = Nothing
            Me.sDetalleSeparacionPagosSaldo = Nothing
            Me.sAhorroPrevio = Nothing
            limpiarSession()
            Me.TabPanel2.Enabled = False
            Me.TabPanel3.Enabled = False
            Me.TabPanel4.Enabled = False
            cargarPerfil(Me.Master.idPerfilUsuario)
            cargartipoDocumento()
            cargarEstadoCivil()
            cargarSexo()
            cargarEstudio()
            cargarDepartamento()
            selProvinciaCliente.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selProvinciaCoopropietario.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selProvinciaRepresentante.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selProvinciaLaboralCliente.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selDistritoCliente.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selDistritoCoopropietario.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selDistritoRepresentante.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selDistritoLaboralCliente.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selProvinciaCony.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selProvinciaLaboralCony.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selDistritoCony.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selDistritoLaboralCony.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selCtaCorrienteSeparacion.Items.Add(New ListItem("-- SELECCIONAR --", "00"))
            selCtaCorrienteSeparacion.SelectedIndex = 0
            cargarProfesion()
            cargarOcupacion()
            cargarSistPago()
            cargarVendedores()
            cargarahorroPrevio()
            cargarEntidadesFinancieras()
            cargarCorredora()
            cargarTipoInmueble()
            cargarMoneda()
            cargarEstadotechoPropio()
            cargarFormaPago()
            cargarEstadoAhorroPrevio()
            cargarMotivoDevolucion()
            cargarEstadoCuotaDetalle()
            cargarEstadoCuotaDetalleSaldo()
            txtTasaAnual.Attributes.Add("onKeyUp", "calcularTasaInteresMensual()")
            hdfEmpresa.Value = Me.Master.descEmpresa.Trim
            txtDividirCtaInic.Value = 0
            upDividirCtaInic.Update()
            txtNroCtaDivirCronograma.Value = 0
            upNroCtaDivirCronograma.Update()
            hdfTotalCuotaDisrtibuidaInicial.Value = 0
            upMontoDistribuidoInicial.Update()
            hdfTotalCuotaDisrtibuidaSaldo.Value = 0
            upTotalCuotasDistribuidasSaldo.Update()
            gvwSeparacionPagosComercial.DataSource = Nothing
            gvwSeparacionPagosComercial.DataBind()
            upSeparacionPagoCtaIncial.Update()
            gvwSeparacionPagosComercialCronograma.DataSource = Nothing
            gvwSeparacionPagosComercialCronograma.DataBind()
            upSeparacionPagosComercial.Update()
            btnGrabarSeparacion.Disabled = True
            btnGrabarPreminuta.Disabled = True
            btnImprimirContrato.Disabled = True
            btnImprimirVoucher.Disabled = True
            upGrabarSeparacion.Update()



            selEntidadFinSeparacion.Attributes.Add("onchange", "CallTheServer('divddlNroCta@TN@' + this.options[this.selectedIndex].value);return false;")
            selEntFinancieraCreHip.Attributes.Add("onchange", "CallTheServer('divddlEstadoCreHip@' + this.options[this.selectedIndex].value);return false;")
            selDepartamentoCliente.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selDistritoCliente').length=1;document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selProvinciaCliente').length=1;} else {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selDistritoCliente').length=1;CallTheServer('divddlProvinciaCli@TN@' + this.options[this.selectedIndex].value + '00')};return false;")
            selProvinciaCliente.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selDistritoCliente').length=1;}else CallTheServer('divddlDistritoCli@TN@' + document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selDepartamentoCliente').value + this.options[this.selectedIndex].value + '00');return false;")

            selDepartamentoCoopropietario.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_selDistritoCoopropietario').length=1;document.getElementById('ctl00_ContentPlaceHolder1_selProvinciaCoopropietario').length=1;} else {document.getElementById('ctl00_ContentPlaceHolder1_selDistritoCoopropietario').length=1;CallTheServer('divddlProvinciaCoo@TN@' + this.options[this.selectedIndex].value + '00')};return false;")
            selProvinciaCoopropietario.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_selDistritoCoopropietario').length=1;}else CallTheServer('divddlDistritoCoo@TN@' + document.getElementById('ctl00_ContentPlaceHolder1_selDepartamentoCoopropietario').value + this.options[this.selectedIndex].value + '00');return false;")

            selDepartamentoRepresentante.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_selDistritoRepresentante').length=1;document.getElementById('ctl00_ContentPlaceHolder1_selProvinciaRepresentante').length=1;} else {document.getElementById('ctl00_ContentPlaceHolder1_selDistritoRepresentante').length=1;CallTheServer('divddlProvinciaRep@TN@' + this.options[this.selectedIndex].value + '00')};return false;")
            selProvinciaRepresentante.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_selDistritoRepresentante').length=1;}else CallTheServer('divddlDistritoRep@TN@' + document.getElementById('ctl00_ContentPlaceHolder1_selDepartamentoRepresentante').value + this.options[this.selectedIndex].value + '00');return false;")

            selDepartamentoLaboralCliente.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selDistritoLaboralCliente').length=1;document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selProvinciaLaboralCliente').length=1;} else {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selDistritoLaboralCliente').length=1;CallTheServer('divddlProvinciaLaboralCli@TN@' + this.options[this.selectedIndex].value + '00')};return false;")
            selProvinciaLaboralCliente.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selDistritoLaboralCliente').length=1;}else CallTheServer('divddlDistritoLaboralCli@TN@' + document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_selDepartamentoLaboralCliente').value + this.options[this.selectedIndex].value + '00');return false;")
            selDepartamentoCony.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selDistritoCony').length=1;document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selProvinciaCony').length=1;} else {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selDistritoCony').length=1;CallTheServer('divddlProvinciaCony@TN@' + this.options[this.selectedIndex].value + '00')};return false;")
            selProvinciaCony.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selDistritoCony').length=1;}else CallTheServer('divddlDistritoCony@TN@' + document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selDepartamentoCony').value + this.options[this.selectedIndex].value + '00');return false;")
            selDepartamentoLaboralCony.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selDistritoLaboralCony').length=1;document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selProvinciaLaboralCony').length=1;} else {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selDistritoLaboralCony').length=1;CallTheServer('divddlProvinciaLaboralCony@TN@' + this.options[this.selectedIndex].value + '00')};return false;")
            selProvinciaLaboralCony.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selDistritoLaboralCony').length=1;}else CallTheServer('divddlDistritoLaboralCony@TN@' + document.getElementById('ctl00_ContentPlaceHolder1_TabContainer1_TabPanel2_selDepartamentoLaboralCony').value + this.options[this.selectedIndex].value + '00');return false;")
            btnGrabarCuotaDetalle.Attributes.Add("onclick", "CallTheServer('grabarCuotaDetalle@' + document.getElementById('ctl00_ContentPlaceHolder1_txtIdCuotaDetalle').value + '@' + document.getElementById('ctl00_ContentPlaceHolder1_txtFchCuotaDetalle').value + '@' + document.getElementById('ctl00_ContentPlaceHolder1_txtMontoCuotaDetalle').value);")
            btnGrabarCuotaDetalleSaldo.Attributes.Add("onclick", "CallTheServer('grabarSaldoDetalle@' + document.getElementById('ctl00_ContentPlaceHolder1_txtIdCuotaDetalleSaldo').value + '@' + document.getElementById('ctl00_ContentPlaceHolder1_txtFchCuotaDetalleSaldo').value + '@' + document.getElementById('ctl00_ContentPlaceHolder1_txtMontoCuotaDetalleSaldo').value);")
            Dim cbReference As String
            cbReference = Page.ClientScript.GetCallbackEventReference(Me, "arg", "ReceiveServerData", "null", True)
            Dim callbackScript As String = ""
            callbackScript &= "function CallTheServer(arg)" & _
                              "{" & cbReference & "; }"
            Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "CallTheServer", callbackScript, True)
        End If
    End Sub
    Private Sub limpiarSession()
        Me.UnidadesSeleccionadas = Nothing
        Session("coopropietarios") = Nothing
        Session("listaVen") = Nothing
        Session("listaApo") = Nothing
        Session("listaSistemaPago") = Nothing
        Session("BuscarCliente") = Nothing
        Session("listaCoo") = Nothing
        Session("listaProforma") = Nothing
        Session("listaSeparacion") = Nothing
        Session("detalleSeparacion") = Nothing
        Session("detalleSeparacionPagosCtaInicial") = Nothing
        Session("detalleSeparacionPagosSaldo") = Nothing
        Session("strDetalle") = Nothing
        Session("sAhorroPrevio") = Nothing
    End Sub
#End Region

#Region "          EMail de Aprobadores                               "
    Public Shared Function EmailAprobacion(ByVal descEmpresa As String, ByVal idProyecto As Int32) As String
        Dim cuentas As String = Nothing
        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_EmailAprobacionXResponsables_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            Do While dr.Read
                                cuentas = cuentas + dr.GetString(dr.GetOrdinal("email")) + ";"
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return cuentas
    End Function
#End Region

#Region "          Datos Cliente                                "
    Private Sub cargartipoDocumento()
        TpoDcmtos = RtpoDcmto.SeleccionarTodo(Me.Master.descEmpresa, True)
        If Not TpoDcmtos Is Nothing Then
            selTipoDcmtoCliente.DataSource = TpoDcmtos
            selTipoDcmtoCliente.DataTextField = "descTpoDcmto"
            selTipoDcmtoCliente.DataValueField = "idTpoDcmto"
            selTipoDcmtoCliente.DataBind()
        End If
        If Not TpoDcmtos Is Nothing Then
            selTpoDcmtoApoderado.DataSource = TpoDcmtos
            selTpoDcmtoApoderado.DataTextField = "descTpoDcmto"
            selTpoDcmtoApoderado.DataValueField = "idTpoDcmto"
            selTpoDcmtoApoderado.DataBind()
        End If
        If Not TpoDcmtos Is Nothing Then
            selTipoDocCoo.DataSource = TpoDcmtos
            selTipoDocCoo.DataTextField = "descTpoDcmto"
            selTipoDocCoo.DataValueField = "idTpoDcmto"
            selTipoDocCoo.DataBind()
        End If
        If Not TpoDcmtos Is Nothing Then
            selTipoDocRep.DataSource = TpoDcmtos
            selTipoDocRep.DataTextField = "descTpoDcmto"
            selTipoDocRep.DataValueField = "idTpoDcmto"
            selTipoDocRep.DataBind()
        End If
        If Not TpoDcmtos Is Nothing Then
            selTipoDcmtoCony.DataSource = TpoDcmtos
            selTipoDcmtoCony.DataTextField = "descTpoDcmto"
            selTipoDcmtoCony.DataValueField = "idTpoDcmto"
            selTipoDcmtoCony.DataBind()
        End If
    End Sub
    Private Sub cargarSexo()
        Dim Esexo As New Ecommons
        selSexoCliente.DataSource = Esexo.sexo
        selSexoCliente.DataTextField = "descripcion"
        selSexoCliente.DataValueField = "codigo"
        selSexoCliente.DataBind()

        Dim EsexoCony As New Ecommons
        selSexoCony.DataSource = EsexoCony.sexo
        selSexoCony.DataTextField = "descripcion"
        selSexoCony.DataValueField = "codigo"
        selSexoCony.DataBind()
    End Sub
    Private Sub cargarDepartamento()
        Dim ubigeos As List(Of Eubigeo) = Nothing
        ubigeos = Rubigeo.SeleccionarTodoXDepartamento(Me.Master.descEmpresa, True)

        selDepartamentoCliente.DataSource = ubigeos
        selDepartamentoCliente.DataTextField = "descripcion"
        selDepartamentoCliente.DataValueField = "idUbigeo"
        selDepartamentoCliente.DataBind()

        selDepartamentoCoopropietario.DataSource = ubigeos
        selDepartamentoCoopropietario.DataTextField = "descripcion"
        selDepartamentoCoopropietario.DataValueField = "idUbigeo"
        selDepartamentoCoopropietario.DataBind()

        selDepartamentoRepresentante.DataSource = ubigeos
        selDepartamentoRepresentante.DataTextField = "descripcion"
        selDepartamentoRepresentante.DataValueField = "idUbigeo"
        selDepartamentoRepresentante.DataBind()

        selDepartamentoLaboralCliente.DataSource = ubigeos
        selDepartamentoLaboralCliente.DataTextField = "descripcion"
        selDepartamentoLaboralCliente.DataValueField = "idUbigeo"
        selDepartamentoLaboralCliente.DataBind()

        selDepartamentoCony.DataSource = ubigeos
        selDepartamentoCony.DataTextField = "descripcion"
        selDepartamentoCony.DataValueField = "idUbigeo"
        selDepartamentoCony.DataBind()

        selDepartamentoLaboralCony.DataSource = ubigeos
        selDepartamentoLaboralCony.DataTextField = "descripcion"
        selDepartamentoLaboralCony.DataValueField = "idUbigeo"
        selDepartamentoLaboralCony.DataBind()
    End Sub
    Private Sub cargarProvinciaDG(ByVal idDepartamento As String)
        selProvinciaCliente.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, idDepartamento)
        selProvinciaCliente.DataTextField = "descripcion"
        selProvinciaCliente.DataValueField = "idUbigeo"
        selProvinciaCliente.DataBind()

        selProvinciaCoopropietario.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, idDepartamento)
        selProvinciaCoopropietario.DataTextField = "descripcion"
        selProvinciaCoopropietario.DataValueField = "idUbigeo"
        selProvinciaCoopropietario.DataBind()
    End Sub
    Private Sub cargarProvinciaDL(ByVal idDepartamento As String)
        selProvinciaLaboralCliente.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, idDepartamento)
        selProvinciaLaboralCliente.DataTextField = "descripcion"
        selProvinciaLaboralCliente.DataValueField = "idUbigeo"
        selProvinciaLaboralCliente.DataBind()
    End Sub
    Private Sub cargarProvinciaCony(ByVal idDepartamento As String)
        selProvinciaCony.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, idDepartamento)
        selProvinciaCony.DataTextField = "descripcion"
        selProvinciaCony.DataValueField = "idUbigeo"
        selProvinciaCony.DataBind()
    End Sub
    Private Sub cargarProvinciaDLCony(ByVal idDepartamento As String)
        selProvinciaLaboralCony.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, idDepartamento)
        selProvinciaLaboralCony.DataTextField = "descripcion"
        selProvinciaLaboralCony.DataValueField = "idUbigeo"
        selProvinciaLaboralCony.DataBind()
    End Sub
    Private Sub cargarDistritoDG(ByVal idDepartamento As String, ByVal idProvincia As String)
        selDistritoCliente.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, idDepartamento, idProvincia)
        selDistritoCliente.DataTextField = "descripcion"
        selDistritoCliente.DataValueField = "idUbigeo"
        selDistritoCliente.DataBind()
    End Sub
    Private Sub cargarDistritoDL(ByVal idDepartamento As String, ByVal idProvincia As String)
        selDistritoLaboralCliente.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, idDepartamento, idProvincia)
        selDistritoLaboralCliente.DataTextField = "descripcion"
        selDistritoLaboralCliente.DataValueField = "idUbigeo"
        selDistritoLaboralCliente.DataBind()
    End Sub
    Private Sub cargarDistritoCony(ByVal idDepartamento As String, ByVal idProvincia As String)
        selDistritoCony.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, idDepartamento, idProvincia)
        selDistritoCony.DataTextField = "descripcion"
        selDistritoCony.DataValueField = "idUbigeo"
        selDistritoCony.DataBind()
    End Sub
    Private Sub cargarDistritoDLCony(ByVal idDepartamento As String, ByVal idProvincia As String)
        selDistritoLaboralCony.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, idDepartamento, idProvincia)
        selDistritoLaboralCony.DataTextField = "descripcion"
        selDistritoLaboralCony.DataValueField = "idUbigeo"
        selDistritoLaboralCony.DataBind()
    End Sub
    Private Sub cargarEstadoCivil()
        estadoCivils = RestadoCivil.SeleccionarTodo(Me.Master.descEmpresa, True)
        If Not estadoCivils Is Nothing Then
            selEstCivilCliente.DataSource = estadoCivils
            selEstCivilCliente.DataTextField = "desEstCivil"
            selEstCivilCliente.DataValueField = "idEstCivil"
            selEstCivilCliente.DataBind()

            selEstadoCivilCoo.DataSource = estadoCivils
            selEstadoCivilCoo.DataTextField = "desEstCivil"
            selEstadoCivilCoo.DataValueField = "idEstCivil"
            selEstadoCivilCoo.DataBind()

            selEstadoCivilRep.DataSource = estadoCivils
            selEstadoCivilRep.DataTextField = "desEstCivil"
            selEstadoCivilRep.DataValueField = "idEstCivil"
            selEstadoCivilRep.DataBind()

            selEstCivilCony.DataSource = estadoCivils
            selEstCivilCony.DataTextField = "desEstCivil"
            selEstCivilCony.DataValueField = "idEstCivil"
            selEstCivilCony.DataBind()
        End If
    End Sub
    Private Sub cargarEstudio()
        estudios = Restudio.SeleccionarTodoXestado(Me.Master.descEmpresa, True)
        If Not estudios Is Nothing Then
            selEstudioCliente.DataSource = estudios
            selEstudioCliente.DataTextField = "descEstudio"
            selEstudioCliente.DataValueField = "idEstudio"
            selEstudioCliente.DataBind()

            selEstudioCony.DataSource = estudios
            selEstudioCony.DataTextField = "descEstudio"
            selEstudioCony.DataValueField = "idEstudio"
            selEstudioCony.DataBind()
        End If
    End Sub
    Private Sub cargarProfesion()
        profesions = Rprofesion.SeleccionarXEstado(Me.Master.descEmpresa, True)
        If Not profesions Is Nothing Then
            selProfesionCliente.DataSource = profesions
            selProfesionCliente.DataTextField = "desProfesion"
            selProfesionCliente.DataValueField = "idProfesion"
            selProfesionCliente.DataBind()

            selProfesionCony.DataSource = profesions
            selProfesionCony.DataTextField = "desProfesion"
            selProfesionCony.DataValueField = "idProfesion"
            selProfesionCony.DataBind()
        End If
    End Sub
    Private Sub cargarOcupacion()
        ocupacions = Rocupacion.SeleccionarXEstado(Me.Master.descEmpresa, True)
        If Not ocupacions Is Nothing Then
            selOcupacionCliente.DataSource = ocupacions
            selOcupacionCliente.DataTextField = "descOcupacion"
            selOcupacionCliente.DataValueField = "idOcupacion"
            selOcupacionCliente.DataBind()

            selOcupacionApoderado.DataSource = ocupacions
            selOcupacionApoderado.DataTextField = "descOcupacion"
            selOcupacionApoderado.DataValueField = "idOcupacion"
            selOcupacionApoderado.DataBind()

            selOcupacionCony.DataSource = ocupacions
            selOcupacionCony.DataTextField = "descOcupacion"
            selOcupacionCony.DataValueField = "idOcupacion"
            selOcupacionCony.DataBind()
        End If
    End Sub
    Private Sub cargarMoneda()
        selMonedaSeparacion.DataSource = Rmoneda.SeleccionarTodo(Me.Master.descEmpresa, True) 'monedas
        selMonedaSeparacion.DataTextField = "descMoneda"
        selMonedaSeparacion.DataValueField = "idMoneda"
        selMonedaSeparacion.DataBind()
        upMonedaSeparacion.Update()
    End Sub
    Private Sub cargarEstadotechoPropio()
        Dim Eestado As New Ecommons
        selEstadoTP.DataSource = Eestado.estadoSeguimientoTP
        selEstadoTP.DataTextField = "descripcion"
        selEstadoTP.DataValueField = "codigo"
        selEstadoTP.DataBind()
        upEstadoTP.Update()
    End Sub
    Private Sub cargarFormaPago()
        Dim formaPagos As List(Of EformaPago) = Nothing
        formaPagos = RformaPago.SeleccionarXEstado(Me.Master.descEmpresa, True)
        If Not formaPagos Is Nothing Then
            selFormaPagoSeparacion.DataSource = formaPagos
            selFormaPagoSeparacion.DataTextField = "descFormaPago"
            selFormaPagoSeparacion.DataValueField = "idFormaPago"
            selFormaPagoSeparacion.DataBind()
            upFormaPagoSeparacion.Update()

            selFormaPago.DataSource = formaPagos
            selFormaPago.DataTextField = "descFormaPago"
            selFormaPago.DataValueField = "idFormaPago"
            selFormaPago.DataBind()

            selFormaPagoCtaInic.DataSource = formaPagos
            selFormaPagoCtaInic.DataTextField = "descFormaPago"
            selFormaPagoCtaInic.DataValueField = "idFormaPago"
            selFormaPagoCtaInic.DataBind()

            selFormaPagoCtaInic.SelectedIndex = 1
            selFormaPagoCtaInic.Disabled = True
        End If
    End Sub
    Private Sub cargarCtaCorriente(ByVal idEntidadFin As Int32)
        selCtaCorrienteSeparacion.DataSource = RctaCorriente.SeleccionarTodo(Me.Master.descEmpresa, True, idEntidadFin) 'ctaCorrientes
        selCtaCorrienteSeparacion.DataTextField = "nroCuenta"
        selCtaCorrienteSeparacion.DataValueField = "idCuenta"
        selCtaCorrienteSeparacion.DataBind()
        upSelCtaCorrienteSeparacion.Update()
    End Sub
    Private Function cargarInstanciaSeg(ByVal idEntidadFina As Int32) As String
        Dim sr As New System.IO.StringWriter()
        Dim htm As New HtmlTextWriter(sr)
        selEstadoCreHip.DataSource = RSeguimientoFin.SeleccionarTodo(Me.Master.descEmpresa, True, idEntidadFina) ' instancias
        selEstadoCreHip.DataTextField = "descSeguimiento"
        selEstadoCreHip.DataValueField = "idSeguimiento"
        selEstadoCreHip.DataBind()
        selEstadoCreHip.RenderControl(htm)
        upEstadoCreHip.Update()
        htm.Flush()
        Return sr.ToString
    End Function
#End Region

#Region "          Datos del Coopropietario                     "
    Private Property sCoopropietarios() As List(Of Ecliente)
        Get
            If Session("coopropietarios") Is Nothing Then
                Return Nothing
            Else
                Return Session("coopropietarios")
            End If
        End Get
        Set(ByVal value As List(Of Ecliente))
            Session("coopropietarios") = value
        End Set
    End Property
#End Region

#Region "          Datos del Representante                     "
    Private Property sRepresentantes() As List(Of Ecliente)
        Get
            If Session("representantes") Is Nothing Then
                Return Nothing
            Else
                Return Session("representantes")
            End If
        End Get
        Set(ByVal value As List(Of Ecliente))
            Session("representantes") = value
        End Set
    End Property
#End Region

#Region "          Cargar Datos                                 "
    Private Sub cargarVendedores()
        selVendedor.DataSource = Rvendedor.SeleccionarXEstado(Me.Master.descEmpresa, True)
        selVendedor.DataTextField = "NombresCompletos"
        selVendedor.DataValueField = "idVendedor"
        selVendedor.DataBind()
    End Sub
    Private Sub cargarahorroPrevio()
        Dim EahorroPrevio As New Ecommons
        selAhorroPrevio.DataSource = EahorroPrevio.ahorroPrevio
        selAhorroPrevio.DataTextField = "descripcion"
        selAhorroPrevio.DataValueField = "codigo"
        selAhorroPrevio.DataBind()
        selAhorroPrevio.SelectedIndex = 1
    End Sub
    Private Sub cargarEntidadesFinancieras()
        entFinancieras = RentFinanciera.SeleccionarXEstado(Me.Master.descEmpresa, True)
        If Not entFinancieras Is Nothing Then
            selEntFinancieraCreHip.DataSource = entFinancieras
            selEntFinancieraCreHip.DataTextField = "descEntidadFin"
            selEntFinancieraCreHip.DataValueField = "idEntidadFin"
            selEntFinancieraCreHip.DataBind()

            selEntidadFinSeparacion.DataSource = entFinancieras
            selEntidadFinSeparacion.DataTextField = "descEntidadFin"
            selEntidadFinSeparacion.DataValueField = "idEntidadFin"
            selEntidadFinSeparacion.DataBind()
            upEntidadFinSeparacion.Update()

            selEntidadFinAh.DataSource = entFinancieras
            selEntidadFinAh.DataTextField = "descEntidadFin"
            selEntidadFinAh.DataValueField = "idEntidadFin"
            selEntidadFinAh.DataBind()
            upEntidadFinAh.Update()
        End If
    End Sub
    Private Sub cargarCorredora()
        ddlCorredora.DataSource = Rcorredora.SeleccionarXEstado(Me.Master.descEmpresa, True)
        ddlCorredora.DataTextField = "NombresCompletos"
        ddlCorredora.DataValueField = "idCorredora"
        ddlCorredora.DataBind()
    End Sub
    Private Sub cargarMotivoDevolucion()
        selMotDevolucion.DataSource = RmotDevInmueble.SeleccionarTodo(Me.Master.descEmpresa, True)
        selMotDevolucion.DataTextField = "descMotDevInmueble"
        selMotDevolucion.DataValueField = "idMotDevInmueble"
        selMotDevolucion.DataBind()
    End Sub
    Private Sub deshabilitarControles(ByVal nuevo As Boolean)
        btnConsultar.Attributes.Add("disabled", "disable")
        '--------------------------------- CLIENTE -----------------------------------------'
        If nuevo.Equals(True) Then
            selTipoDcmtoCliente.SelectedIndex = 0
            selEstCivilCliente.Value = 0
            selSexoCliente.SelectedIndex = 0
            selEstudioCliente.SelectedIndex = 0
            selDepartamentoCliente.SelectedIndex = 0
            selProvinciaCliente.SelectedIndex = 0
            selDistritoCliente.SelectedIndex = 0
            selProfesionCliente.SelectedIndex = 0
            selOcupacionCliente.SelectedIndex = 0
            selTpoDcmtoApoderado.SelectedIndex = 0
            selOcupacionApoderado.SelectedIndex = 0
        End If

        selTipoDcmtoCliente.Attributes.Add("disabled", "disable")
        txtNroDcmtoCliente.Attributes.Add("disabled", "disable")
        'txtOtroDocumento.Attributes.Add("disabled", "disable")
        txtEdadCliente.Attributes.Add("disabled", "disable")
        txtRazonSocialCliente.Attributes.Add("disabled", "disable")
        txtNombreCliente.Attributes.Add("disabled", "disable")
        txtApePaternoCliente.Attributes.Add("disabled", "disable")
        txtApeMaternoCliente.Attributes.Add("disabled", "disable")
        txtFchNacCliente.Attributes.Add("disabled", "disable")
        selEstCivilCliente.Attributes.Add("disabled", "disable")
        txtNroDependientesCliente.Attributes.Add("disabled", "disable")
        selSexoCliente.Attributes.Add("disabled", "disable")
        selEstudioCliente.Attributes.Add("disabled", "disable")
        txtNacionalidadCliente.Attributes.Add("disabled", "disable")
        txtTelefonoFijoCliente.Attributes.Add("disabled", "disable")
        txtTelefonoCelularCliente.Attributes.Add("disabled", "disable")
        txtEmailCliente.Attributes.Add("disabled", "disable")

        selDepartamentoCliente.Attributes.Add("disabled", "disable")
        selProvinciaCliente.Attributes.Add("disabled", "disable")
        selDistritoCliente.Attributes.Add("disabled", "disable")

        txtUrbanizacionCliente.Attributes.Add("disabled", "disable")
        txtDireccionCliente.Attributes.Add("disabled", "disable")
        chbSepPatrimonioCliente.Attributes.Add("disabled", "disable") 'MPE
        txtNroPartidaCliente.Attributes.Add("disabled", "disable")
        'txtCodPago.Attributes.Add("disabled", "disable")
        selProfesionCliente.Attributes.Add("disabled", "disable")
        selOcupacionCliente.Attributes.Add("disabled", "disable")
        txtRucCliente.Attributes.Add("disabled", "disable")
        txtRazonSocialLaboralCliente.Attributes.Add("disabled", "disable")
        txtGiroCliente.Attributes.Add("disabled", "disable")

        selDepartamentoLaboralCliente.Attributes.Add("disabled", "disable")
        selProvinciaLaboralCliente.Attributes.Add("disabled", "disable")
        selDistritoLaboralCliente.Attributes.Add("disabled", "disable")

        txtUrbanizacionDL.Attributes.Add("disabled", "disable")
        txtDireccionLaboralCliente.Attributes.Add("disabled", "disable")
        txtTelefonoLaboralUnoCliente.Attributes.Add("disabled", "disable")
        txtTelefonoLaboralDosCliente.Attributes.Add("disabled", "disable")
        txtPuestoCliente.Attributes.Add("disabled", "disable")
        txtAntLaboralCliente.Attributes.Add("disabled", "disable")
        txtIngresoCliente.Attributes.Add("disabled", "disable")
        selTpoDcmtoApoderado.Attributes.Add("disabled", "disable")
        txtNroDcmtoApoderado.Attributes.Add("disabled", "disable")
        txtNombreApoderado.Attributes.Add("disabled", "disable")
        txtApePaternoApoderado.Attributes.Add("disabled", "disable")
        txtApeMaternoApoderado.Attributes.Add("disabled", "disable")
        txtNacionalidadApoderado.Attributes.Add("disabled", "disable")
        txtEmailApoderado.Attributes.Add("disabled", "disable")
        txtTelefonoParticularApoderado.Attributes.Add("disabled", "disable")
        txtCelularUnoApoderado.Attributes.Add("disabled", "disable")
        txtCelularDosApoderado.Attributes.Add("disabled", "disable")
        selOcupacionApoderado.Attributes.Add("disabled", "disable")
        txtNroPartidaPAoderado.Attributes.Add("disabled", "disable")
        txtNroPartidaCliente.Attributes.Add("disabled", "disable")
        txtLugarPartida.Attributes.Add("disabled", "disable")

        selVendedor.Attributes.Add("disabled", "disable")
        selAhorroPrevio.Attributes.Add("disabled", "disable")
        lkbAhorroPrevio.Attributes.Add("disabled", "disable")
        upAhorroPrevio.Update()
        ddlCorredora.Attributes.Add("disabled", "disable")
        txtFchOper.Attributes.Add("disabled", "disable")
        txtFechaVen.Attributes.Add("disabled", "disable")
        txtAdicionales.Attributes.Add("disabled", "disable")
        txtDescuento.Attributes.Add("disabled", "disable")
        txtObservacion.Attributes.Add("disabled", "disable")
        chbCoopropietario.Attributes.Add("disabled", "disable")
        chbApoderado.Attributes.Add("disabled", "disable")
        txtPorcentajeCliente.Attributes.Add("disabled", "disable")
        '-----------------------------------------------------------------------------------'
        '-----------------------------------------------------------------------------------'

        '----------------------------------- CONYUGUE --------------------------------------'
        If nuevo.Equals(True) Then
            selTipoDcmtoCony.SelectedIndex = 0
            selEstCivilCony.SelectedValue = 0
            selSexoCony.SelectedIndex = 0
            selEstudioCony.SelectedIndex = 0
            'selDepartamentoCony.SelectedIndex = 0
            'selProvinciaCony.SelectedIndex = 0
            'selDistritoCony.SelectedIndex = 0
            selProfesionCony.SelectedIndex = 0
            selOcupacionCony.SelectedIndex = 0
        End If

        selTipoDcmtoCony.Attributes.Add("disabled", "disable")
        txtNroDcmtoCony.Attributes.Add("disabled", "disable")
        txtOtroDocumentoCony.Attributes.Add("disabled", "disable")
        txtEdadCony.Attributes.Add("disabled", "disable")
        txtNombreCony.Attributes.Add("disabled", "disable")
        txtApePaternoCony.Attributes.Add("disabled", "disable")
        txtApeMaternoCony.Attributes.Add("disabled", "disable")
        txtFchNacCony.Attributes.Add("disabled", "disable")
        selEstCivilCony.Attributes.Add("disabled", "disable")
        txtNroDependientesCony.Attributes.Add("disabled", "disable")
        selSexoCony.Attributes.Add("disabled", "disable")
        selEstudioCony.Attributes.Add("disabled", "disable")
        txtNacionalidadCony.Attributes.Add("disabled", "disable")
        txtTelefonoFijoCony.Attributes.Add("disabled", "disable")
        txtTelefonoCelularCony.Attributes.Add("disabled", "disable")
        txtEmailCony.Attributes.Add("disabled", "disable")

        'selDepartamentoCony.Attributes.Add("disabled", "disable")
        'selProvinciaCony.Attributes.Add("disabled", "disable")
        'selDistritoCony.Attributes.Add("disabled", "disable")

        txtUrbanizacionCony.Attributes.Add("disabled", "disable")
        txtDireccionCony.Attributes.Add("disabled", "disable")
        selProfesionCony.Attributes.Add("disabled", "disable")
        selOcupacionCony.Attributes.Add("disabled", "disable")
        txtRucCony.Attributes.Add("disabled", "disable")
        txtRazonSocialCony.Attributes.Add("disabled", "disable")
        txtGiroCony.Attributes.Add("disabled", "disable")

        'selDepartamentoLaboralCony.Attributes.Add("disabled", "disable")
        'selProvinciaLaboralCony.Attributes.Add("disabled", "disable")
        'selDistritoLaboralCony.Attributes.Add("disabled", "disable")

        txtUrbanizacionLaboralCony.Attributes.Add("disabled", "disable")
        txtDireccionLaboralCony.Attributes.Add("disabled", "disable")
        txtTelefonoLaboralUnoCony.Attributes.Add("disabled", "disable")
        txtTelefonoLaboralDosCony.Attributes.Add("disabled", "disable")
        txtPuestoCony.Attributes.Add("disabled", "disable")
        txtAntLaboralCony.Attributes.Add("disabled", "disable")
        txtIngresoCony.Attributes.Add("disabled", "disable")
        '-----------------------------------------------------------------------------------'
        '-----------------------------------------------------------------------------------'
        upDatosClientes.Update()
    End Sub
    'Private Sub habilitarControles()
    '    btnConsultar.Attributes.Remove("disabled")
    '    '--------------------------------- CLIENTE -----------------------------------------'
    '    selTipoDcmtoCliente.Attributes.Remove("disabled")
    '    txtNroDcmtoCliente.Attributes.Remove("disabled")
    '    txtEdadCliente.Attributes.Remove("disabled")
    '    txtRazonSocialCliente.Attributes.Remove("disabled")
    '    txtNombreCliente.Attributes.Remove("disabled")
    '    txtApePaternoCliente.Attributes.Remove("disabled")
    '    txtApeMaternoCliente.Attributes.Remove("disabled")
    '    txtFchNacCliente.Attributes.Remove("disabled")
    '    selEstCivilCliente.Attributes.Remove("disabled")
    '    txtNroDependientesCliente.Attributes.Remove("disabled")
    '    selSexoCliente.Attributes.Remove("disabled")
    '    selEstudioCliente.Attributes.Remove("disabled")
    '    txtNacionalidadCliente.Attributes.Remove("disabled")
    '    txtTelefonoFijoCliente.Attributes.Remove("disabled")
    '    txtTelefonoCelularCliente.Attributes.Remove("disabled")
    '    txtEmailCliente.Attributes.Remove("disabled")
    '    selDepartamentoCliente.Attributes.Remove("disabled")
    '    selProvinciaCliente.Attributes.Remove("disabled")
    '    selDistritoCliente.Attributes.Remove("disabled")
    '    txtUrbanizacionCliente.Attributes.Remove("disabled")
    '    txtDireccionCliente.Attributes.Remove("disabled")
    '    chbSepPatrimonioCliente.Attributes.Remove("disabled")
    '    txtNroPartidaCliente.Attributes.Remove("disabled")
    '    txtCodPago.Attributes.Remove("disabled")

    '    selProfesionCliente.Attributes.Remove("disabled")
    '    selOcupacionCliente.Attributes.Remove("disabled")
    '    txtRucCliente.Attributes.Remove("disabled")
    '    txtRazonSocialLaboralCliente.Attributes.Remove("disabled")
    '    txtGiroCliente.Attributes.Remove("disabled")
    '    selDepartamentoLaboralCliente.Attributes.Remove("disabled")
    '    selProvinciaLaboralCliente.Attributes.Remove("disabled")
    '    selDistritoLaboralCliente.Attributes.Remove("disabled")
    '    txtUrbanizacionDL.Attributes.Remove("disabled")
    '    txtDireccionLaboralCliente.Attributes.Remove("disabled")
    '    txtTelefonoLaboralUnoCliente.Attributes.Remove("disabled")
    '    txtTelefonoLaboralDosCliente.Attributes.Remove("disabled")
    '    txtPuestoCliente.Attributes.Remove("disabled")
    '    txtAntLaboralCliente.Attributes.Remove("disabled")
    '    txtIngresoCliente.Attributes.Remove("disabled")

    '    selTpoDcmtoApoderado.Attributes.Remove("disabled")
    '    txtNroDcmtoApoderado.Attributes.Remove("disabled")
    '    txtNombreApoderado.Attributes.Remove("disabled")
    '    txtApePaternoApoderado.Attributes.Remove("disabled")
    '    txtApeMaternoApoderado.Attributes.Remove("disabled")
    '    txtNacionalidadApoderado.Attributes.Remove("disabled")
    '    txtEmailApoderado.Attributes.Remove("disabled")
    '    txtTelefonoParticularApoderado.Attributes.Remove("disabled")
    '    txtCelularUnoApoderado.Attributes.Remove("disabled")
    '    txtCelularDosApoderado.Attributes.Remove("disabled")
    '    selOcupacionApoderado.Attributes.Remove("disabled")
    '    txtNroPartidaPAoderado.Attributes.Remove("disabled")
    '    '-----------------------------------------------------------------------------------'
    '    '-----------------------------------------------------------------------------------'

    '    '----------------------------------- CONYUGUE --------------------------------------'
    '    selTipoDcmtoCony.Attributes.Remove("disabled")
    '    txtNroDcmtoCony.Attributes.Remove("disabled")
    '    txtEdadCony.Attributes.Remove("disabled")
    '    txtNombreCony.Attributes.Remove("disabled")
    '    txtApePaternoCony.Attributes.Remove("disabled")
    '    txtApeMaternoCony.Attributes.Remove("disabled")
    '    txtFchNacCony.Attributes.Remove("disabled")
    '    selEstCivilCony.Attributes.Remove("disabled")
    '    txtNroDependientesCony.Attributes.Remove("disabled")
    '    selSexoCony.Attributes.Remove("disabled")
    '    selEstudioCony.Attributes.Remove("disabled")
    '    txtNacionalidadCony.Attributes.Remove("disabled")
    '    txtTelefonoFijoCony.Attributes.Remove("disabled")
    '    txtTelefonoCelularCony.Attributes.Remove("disabled")
    '    txtEmailCony.Attributes.Remove("disabled")

    '    selDepartamentoCony.Attributes.Remove("disabled")
    '    selProvinciaCony.Attributes.Remove("disabled")
    '    selDistritoCony.Attributes.Remove("disabled")

    '    txtUrbanizacionCony.Attributes.Remove("disabled")
    '    txtDireccionCony.Attributes.Remove("disabled")

    '    selProfesionCony.Attributes.Remove("disabled")
    '    selOcupacionCony.Attributes.Remove("disabled")
    '    txtRucCony.Attributes.Remove("disabled")
    '    txtRazonSocialCony.Attributes.Remove("disabled")
    '    txtGiroCony.Attributes.Remove("disabled")

    '    selDepartamentoLaboralCony.Attributes.Remove("disabled")
    '    selProvinciaLaboralCony.Attributes.Remove("disabled")
    '    selDistritoLaboralCony.Attributes.Remove("disabled")

    '    txtUrbanizacionLaboralCony.Attributes.Remove("disabled")
    '    txtDireccionLaboralCony.Attributes.Remove("disabled")
    '    txtTelefonoLaboralUnoCony.Attributes.Remove("disabled")
    '    txtTelefonoLaboralDosCony.Attributes.Remove("disabled")
    '    txtPuestoCony.Attributes.Remove("disabled")
    '    txtAntLaboralCony.Attributes.Remove("disabled")
    '    txtIngresoCony.Attributes.Remove("disabled")
    '    upDatosClientes.Update()
    '    '-----------------------------------------------------------------------------------'
    '    '-----------------------------------------------------------------------------------'

    '    selVendedor.Attributes.Remove("disabled")
    '    selAhorroPrevio.Attributes.Remove("disabled")
    '    lkbAhorroPrevio.Attributes.Remove("disabled")
    '    upAhorroPrevio.Update()
    '    ddlCorredora.Attributes.Remove("disabled")
    '    txtFchOper.Attributes.Remove("disabled")
    '    txtFechaVen.Attributes.Remove("disabled")
    '    txtAdicionales.Attributes.Remove("disabled")
    '    txtDescuento.Attributes.Remove("disabled")
    '    txtObservacion.Attributes.Remove("disabled")

    '    lblMonto.Enabled = True
    '    upMonto.Update()
    '    lblSeparacion.Enabled = True
    '    upSeparacion.Update()
    '    lkbSaldoCta.Enabled = True
    '    upSaldoCta.Update()
    '    lkbSaldoFinanciamiento.Enabled = True
    '    upSaldoFinanciamiento.Update()
    'End Sub
#End Region

#Region "          Datos del Apoderado                          "
    Public Sub cargarApoderado()
        Dim cliente As New Ecliente
        cliente.idUsuario = Me.Master.idUsuario
        Session("listaApo") = apoderados
        If Not apoderados Is Nothing Then
        End If
    End Sub
#End Region

#Region "          Datos del Inmueble                           "
    Private Sub cargarSistPago()
        selSistemaPago.DataSource = RsistPago.SeleccionarXEstado(Me.Master.descEmpresa, True) 'sistPagos
        selSistemaPago.DataTextField = "descSistPago"
        selSistemaPago.DataValueField = "idSistPago"
        selSistemaPago.DataBind()
    End Sub
#End Region

#Region "          Datos del Cliente                            "
    Protected Sub btnConsultar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsultar.Click
        mpCliente.Show()
    End Sub
    Protected Sub btnBuscarCliente_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBuscarCliente.Click
        clientes = Rcliente.SeleccionarFiltraNombreApePaternoApeMaterno(Me.Master.descEmpresa, False, txtBuscarCliente.Value.Trim)
        Session("BuscarCliente") = clientes
        If Not clientes Is Nothing Then
            gvwClientes.DataSource = clientes
            gvwClientes.DataBind()
        End If
    End Sub
    Protected Sub gvwClientes_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvwClientes.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwClientes, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwClientes_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvwClientes.RowEditing
        Dim id As Int32 = CType(CType(gvwClientes.Rows(e.NewEditIndex).FindControl("lnkCodigoCliente"), LinkButton).CommandArgument, Int32)
        clientes = Session("BuscarCliente")
        If Not clientes Is Nothing Then
            Dim Lcliente = From v In clientes _
                            Where v.idCliente.ToString = id _
                            Select v
            txtNombreCliente.Value = Lcliente.ElementAt(0).nombre
            txtApePaternoCliente.Value = Lcliente.ElementAt(0).apePaterno
            txtApeMaternoCliente.Value = Lcliente.ElementAt(0).apeMaterno
            selTipoDcmtoCliente.Value = Lcliente.ElementAt(0).EtpoDcmto.idTpoDcmto
            selSexoCliente.Value = Lcliente.ElementAt(0).sexo
            selEstCivilCliente.Value = Lcliente.ElementAt(0).EestadoCivil.idEstCivil
            selDepartamentoCliente.SelectedIndex = Lcliente.ElementAt(0).Eubigeo.idUbigeo.Substring(0, 2)
            txtTelefonoFijoCliente.Text = Lcliente.ElementAt(0).telefonoFijo
            selOcupacionCliente.Value = Lcliente.ElementAt(0).Eocupacion.idOcupacion
            txtTelefonoLaboralUnoCliente.Text = Lcliente.ElementAt(0).telefonoLaboral
            txtNroDcmtoCliente.Value = Lcliente.ElementAt(0).nroDocumento
            txtOtroDocumento.Value = Lcliente.ElementAt(0).OtroDocumento
            txtEdadCliente.Value = Lcliente.ElementAt(0).edad
            txtEmailCliente.Value = Lcliente.ElementAt(0).email
            txtDireccionCliente.Text = Lcliente.ElementAt(0).direccion.Trim
            txtTelefonoCelularCliente.Text = Lcliente.ElementAt(0).celular1
            txtDireccionLaboralCliente.Text = Lcliente.ElementAt(0).direccionLaboral
            upDatosClientes.Update()

            txtBuscarCliente.Value = ""
            Me.gvwClientes.DataSource = Nothing

            mpCliente.Hide()
        End If
    End Sub
#End Region
#Region "          Datos del Usuario                  "
    Private Sub cargarPerfil(ByVal idPerfil As Int32)
        Dim perfilUsuario As EperfilUsuario
        perfilUsuario = RperfilUsuario.SeleccionarPerfil(Me.Master.descEmpresa, idPerfil)
        hdfPerfil.Value = perfilUsuario.descPerfilUsuario.ToString()

        If perfilUsuario.descPerfilUsuario.ToUpper.Contains("SUPERVISOR") Then
            btnDevolverVenta.Visible = True
        End If
        If perfilUsuario.descPerfilUsuario.ToUpper.Contains("ADMIN") Then
            btnDevolverVenta.Visible = True
        End If
    End Sub

#End Region

#Region "          Filtro de Separacion                         "
    <System.Web.Services.WebMethod(EnableSession:=True, cacheduration:=70)> _
    <System.Web.Script.Services.ScriptMethod()> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Ecliente))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(EtpoDcmto))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(EestadoCivil))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Eestudio))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Eubigeo))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Eprofesion))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Eocupacion))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Ecorredora))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(EseparacionVenta))> _
    Public Shared Function btnGrabarSep(ByVal pCliente As Ecliente, ByVal pApoderado As Ecliente, _
                                        ByVal pConyugue As Ecliente, ByVal pSeparacionVenta As EseparacionVenta, _
                                        ByVal pNuevo As String, ByVal pEmpresa As String) As String

        Dim resultado As Boolean = False
        Dim idSeparacion As Int32 = 0
        Dim codigoSeparacion As String = Nothing
        Dim nroSeparacion As String = Nothing
        If pApoderado.nombre Is Nothing AndAlso pApoderado.apePaterno Is Nothing AndAlso pApoderado.apeMaterno Is Nothing Then
            pApoderado = Nothing
        End If
        If pCliente.EestadoCivil.idEstCivil <> 2 OrElse pConyugue.nombre Is Nothing OrElse _
           pConyugue.apePaterno Is Nothing OrElse pConyugue.apeMaterno Is Nothing Then
            pConyugue = Nothing
        End If


        'If pSeparacionVenta.totalSeparacion > 0 Then
        Dim ev As New evoltaProcesos
        resultado = ev.saveVenta(pCliente, pApoderado, pConyugue, pSeparacionVenta, pNuevo, pEmpresa, idSeparacion, codigoSeparacion)

        If pNuevo = "nuevo" Then
            nroSeparacion = "Separación Nro: [" & idSeparacion.ToString.PadLeft(5, "00000") & "]"
        Else
            nroSeparacion = "Separación Nro: [" & pSeparacionVenta.idTempSeparacionVenta.ToString.Trim.PadLeft(5, "00000") & "]"
        End If
        'End If
        Return resultado.ToString & "@" & idSeparacion.ToString.Trim & "@" & nroSeparacion
    End Function
    <System.Web.Services.WebMethod(EnableSession:=True, cacheduration:=70)> _
   <System.Web.Script.Services.ScriptMethod()> _
   <System.Web.Script.Services.GenerateScriptType(GetType(Ecliente))> _
   <System.Web.Script.Services.GenerateScriptType(GetType(EtpoDcmto))> _
   <System.Web.Script.Services.GenerateScriptType(GetType(EestadoCivil))> _
   <System.Web.Script.Services.GenerateScriptType(GetType(Eestudio))> _
   <System.Web.Script.Services.GenerateScriptType(GetType(Eubigeo))> _
   <System.Web.Script.Services.GenerateScriptType(GetType(Eprofesion))> _
   <System.Web.Script.Services.GenerateScriptType(GetType(Eocupacion))> _
   <System.Web.Script.Services.GenerateScriptType(GetType(Ecorredora))> _
   <System.Web.Script.Services.GenerateScriptType(GetType(EseparacionVenta))> _
   Public Shared Function btnGrabarPre(ByVal pCliente As Ecliente, ByVal pSeparacionVenta As EseparacionVenta, _
                                       ByVal pNuevo As String, ByVal pEmpresa As String) As String
        Dim resultado As Boolean = False
        Dim idSeparacion As Int32 = 0
        Dim nroSeparacion As String = Nothing
        Dim idProyecto As Int32 = pSeparacionVenta.idProyecto
        'If pSeparacionVenta.totalSeparacion > 0 Then
        Dim ev As New evoltaProcesos
        resultado = RseparacionVenta.Preminuta(pEmpresa, pSeparacionVenta)
        If pNuevo = "nuevo" Then
            nroSeparacion = "Separación Nro: [" & idSeparacion.ToString.PadLeft(5, "00000") & "]"
        Else
            nroSeparacion = "Separación Nro: [" & pSeparacionVenta.idTempSeparacionVenta.ToString.Trim.PadLeft(5, "00000") & "]"
        End If
        'End If
        '***** ENVIO DE EMAIL **********
        Dim EmailT As String
        Dim Asunto As String
        Dim wBody As String
        Dim wProyecto = pSeparacionVenta.descProyecto
        Dim wEtapa = pSeparacionVenta.descEtapa
        Dim idSeparacionVenta = pSeparacionVenta.idSeparacionVenta.ToString
        Dim nombreCliente = pCliente.nombre.Trim + " " + pCliente.apePaterno.Trim + " " + pCliente.apeMaterno.Trim
        Dim Inmueble = pSeparacionVenta.inmueble.Trim
        Dim Fecha = pSeparacionVenta.fchOperacion.Trim

        EmailT = EmailAprobacion(pEmpresa.Trim, idProyecto)
        If EmailT IsNot Nothing Then
            wBody = "Estimado colaborador: <br><br>"
            wBody = wBody + "Se ha SOLICITADO LA APROBACION (APROBADO/RECHAZADO) de la MINUTA DE COMPRA VENTA de:<br> <br>"
            wBody = wBody + "PROYECTO: " + wProyecto + "<br>"
            wBody = wBody + "ETAPA: " + wEtapa + "<br>"
            wBody = wBody + "INMUEBLES : " + Inmueble + "<br>"
            wBody = wBody + "CLIENTE : " + nombreCliente + "<br>"
            wBody = wBody + "VENDEDOR : " + pSeparacionVenta.nombreVendedor + "<br>"
            wBody = wBody + "FECHA : " + Fecha + "<br><br><br>"
            wBody = wBody + "Se requiere que ingrese al sistema EVOLTA, módulo de GESTION COMERCIAL/VERIFICAR VENTA, ubique la solicitud y realice el procedimiento establecido" + "<br><br><br>"
            wBody = wBody + "Por favor no responda a éste e-mail, cualquier observación o sugerencia comunicarse a <u>soporte@evolta.pe</u><br><br>"
            wBody = wBody + "<b>EVOLTA</b><br>"
            wBody = wBody + "<i>Su socio estratégico en el negocio inmobiliario</i><br>"
            Asunto = pEmpresa + "/" + pSeparacionVenta.descProyecto + ": Tiene una aprobación de minuta por realizar"
            Rsendemail.SendMail(EmailT, Asunto, wBody)
            Return resultado.ToString & "@" & idSeparacionVenta.ToString.Trim & "@" & nroSeparacion
        Else
            Return resultado.ToString & "@" & idSeparacionVenta.ToString.Trim & "@" & nroSeparacion
        End If
        '***** FIN ENVIO EMAIL ********
    End Function
    Private Function montoTotalSeparacion(ByVal pSeparacionVentaDetalle As List(Of EseparacionVentaDetalle)) As Decimal
        Return (From sep In pSeparacionVentaDetalle _
                Select sep.separacion).Sum()
    End Function
#End Region

#Region "          Predicado                                    "
    Private Shared Function xMotivoCta(ByVal pSeparacionVentaPagos As EseparacionVentaDetallePagos) As Boolean
        Return pSeparacionVentaPagos.idMotivo = 1
    End Function
    Private Shared Function xMotivoSaldo(ByVal pSeparacionVentaPagos As EseparacionVentaDetallePagos) As Boolean
        Return pSeparacionVentaPagos.idMotivo = 2
    End Function
#End Region

#Region "          Datos de Coopropietario                     "

#End Region

#Region "          Datos de Separacion Detalle                  "
    Private Property sDetalleSeparacion() As List(Of EseparacionVentaDetalle)
        Get
            If Session("detalleSeparacion") Is Nothing Then
                Return Nothing
            Else
                Return Session("detalleSeparacion")
            End If
        End Get
        Set(ByVal value As List(Of EseparacionVentaDetalle))
            Session("detalleSeparacion") = value
        End Set
    End Property
    Private Property sDetalleSeparacionPagosCtaInicial() As List(Of EseparacionVentaDetallePagos)
        Get
            If Session("detalleSeparacionPagosCtaInicial") Is Nothing Then
                Return Nothing
            Else
                Return Session("detalleSeparacionPagosCtaInicial")
            End If
        End Get
        Set(ByVal value As List(Of EseparacionVentaDetallePagos))
            Session("detalleSeparacionPagosCtaInicial") = value
        End Set
    End Property
    Private Property sDetalleSeparacionPagosSaldo() As List(Of EseparacionVentaDetallePagos)
        Get
            If Session("detalleSeparacionPagosSaldo") Is Nothing Then
                Return Nothing
            Else
                Return Session("detalleSeparacionPagosSaldo")
            End If
        End Get
        Set(ByVal value As List(Of EseparacionVentaDetallePagos))
            Session("detalleSeparacionPagosSaldo") = value
        End Set
    End Property
    Private Property sSeguimientoCreditoHipotecario() As EseguimientoCreditoHip
        Get
            If Session("seguimientoCreditoHipotecario") Is Nothing Then
                Return Nothing
            Else
                Return Session("seguimientoCreditoHipotecario")
            End If
        End Get
        Set(ByVal value As EseguimientoCreditoHip)
            Session("seguimientoCreditoHipotecario") = value
        End Set
    End Property

    Private Sub cargarTipoInmueble()
        selTipoInmueble.DataSource = RtpoInmueble.SeleccionarTodo(Me.Master.descEmpresa, True)
        selTipoInmueble.DataTextField = "descTpoInmueble"
        selTipoInmueble.DataValueField = "idTpoInmueble"
        selTipoInmueble.DataBind()
    End Sub
    Enum estadoInmueble
        disponible = 1
        separacion = 2
        ctaInicial = 3
        financiamiento = 4
        cancelada = 5
        entregado = 6
        temporal = 7
        inic_fincCancelado = 8
        venta = 9
    End Enum
    Private Function validarSeleccion(ByVal unds As String) As Boolean
        Dim strSeleccion As String = unds
        If strSeleccion.Equals("") Then
            jsMensaje = "<script>javascript:alert('Seleccione un Inmueble.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
            Return False
        End If

        separacionVentaDetalle = New List(Of EseparacionVentaDetalle)
        separacionVentaDetalle = Me.sDetalleSeparacion
        If Not separacionVentaDetalle Is Nothing Then
            For Each pd As EseparacionVentaDetalle In separacionVentaDetalle
                'If strSeleccion.IndexOf(pd.idUndInmob.ToString + ":" + pd.idUndInmob.ToString + "-" + pd.idUndInmob.ToString) <> -1 Then
                If strSeleccion.IndexOf(pd.idEdificio.ToString + ":" + pd.idModelo.ToString + "-" + pd.idUndInmob.ToString) <> -1 Then
                    jsMensaje = "<script>javascript:alert('Ya se seleccionó el inmueble '" + pd.descUndInmob + ");</script>)"
                    Controls.Add(New LiteralControl(jsMensaje))
                    Return False
                End If
            Next
        End If

        If Not Me.UnidadesSeleccionadas Is Nothing Then
            Me.UnidadesSeleccionadas += "," + unds
            Me.UnidadesSeleccionadas = Me.UnidadesSeleccionadas.Replace(",,", ",")
        Else
            Me.UnidadesSeleccionadas = unds
        End If
        Return True
    End Function
    Private Sub seleccionarUnidades()
        Try
            Dim unidad As New EunidInmobiliarias
            With unidad
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .inmuebles = Me.UnidadesSeleccionadas
            End With
            agregarUnidadInmueble(RseparacionVentaDetalle.consultaInmuebles(Me.Master.descEmpresa, unidad))
        Catch ex As Exception
            jsMensaje = "<script>javascript:alert('Se produjo una excepción, no se puedo cargar los inmuebles seleccionados.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End Try
    End Sub
    Private Property UnidadesSeleccionadas() As String
        Get
            If Session("strDetalle") Is Nothing Then
                Return Nothing
            Else
                Return Session("strDetalle").ToString().Trim()
            End If
        End Get
        Set(ByVal value As String)
            Session("strDetalle") = value
        End Set
    End Property
    Private Sub agregarUnidadInmueble(ByVal pSeparacionVentaDetalle As List(Of EseparacionVentaDetalle))
        separacionVentaDetalle = New List(Of EseparacionVentaDetalle)
        If Not Me.sDetalleSeparacion Is Nothing Then
            separacionVentaDetalle = Me.sDetalleSeparacion
        End If
        gvwLista.DataSource = pSeparacionVentaDetalle
        gvwLista.DataBind()
        upInmuebles.Update()
        Me.sDetalleSeparacion = pSeparacionVentaDetalle
        separacionVentaDetalle = pSeparacionVentaDetalle
        mostrarDetalleProforma(separacionVentaDetalle)
    End Sub
    Private Sub mostrarDetalleProforma(ByVal pSeparacionVentaDetalle As List(Of EseparacionVentaDetalle))
        Dim valorVenta As Decimal = 0
        Dim separacion As Decimal = 0
        Dim techopropio As Decimal = 0
        Dim ctaInicial As Decimal = 0
        Dim saldoFinanciar As Decimal = 0
        For Each pd As EseparacionVentaDetalle In pSeparacionVentaDetalle
            valorVenta += Convert.ToDecimal(pd.valorVenta)
            separacion += Convert.ToDecimal(pd.separacion)
            techopropio += Convert.ToDecimal(pd.techopropio)
            ctaInicial += Convert.ToDecimal(pd.ctaInicial)
            saldoFinanciar += Convert.ToDecimal(pd.saldoFinanciar)
            pd.idUsuario = Me.Master.idUsuario
        Next
        vValoresMontos = valorVenta.ToString("###,##0.00") + "@" + _
                         separacion.ToString("###,##0.00") + "@" + _
                         techopropio.ToString("###,##0.00") + "@" + _
                         ctaInicial.ToString("###,##0.00") + "@" + _
                         saldoFinanciar.ToString("###,##0.00")
    End Sub
    Protected Sub gvwLista_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwLista.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Private Sub Crear_TablaPagoSeparacion()
        Dim separacionVentasPagoss As New List(Of EseparacionVentaDetallePagos)
        Dim separacionVentasPagos As New EseparacionVentaDetallePagos
        With separacionVentasPagos
            .fchPago = Date.Today.ToShortDateString
            .montoPago = 0
            .idMoneda = 0
            .idFormaPago = 0
            .idEntidadFin = 0
            .idCuenta = 0
            .nroCuenta = ""
        End With
        separacionVentasPagoss.Add(separacionVentasPagos)
    End Sub
#End Region

#Region "          Monto de Separación                          "
    Protected Sub btnGrabarDatosSeparacionCambiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGrabarDatosSeparacionCambiar.Click
        Dim arr As String() = Split(txtidDatoSeparacionXMonto.Text, ",")
        separacionVentaDetalle = Me.sDetalleSeparacion

        Dim vMonto As Decimal = 0
        Dim vSeparacion As Decimal = 0
        Dim vCtaInicial As Decimal = 0
        Dim vSaldoFinanciar As Decimal = 0


        For y = 0 To Me.gvwLista.Rows.Count - 1
            vMonto = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)

            If separacionVentaDetalle.Item(y).idEdificio = CType(arr(0).ToString, Int32) AndAlso _
               separacionVentaDetalle.Item(y).idModelo = CType(arr(1).ToString, Int32) AndAlso _
               separacionVentaDetalle.Item(y).idUndInmob = CType(arr(2).ToString, Int32) Then

                vSeparacion = CType(txtMontoCambiarSeparacion.Text, Decimal)
            Else
                vSeparacion = Math.Round((CType(lblSeparacion.Text, Decimal) - CType(txtMontoCambiarSeparacion.Text, Decimal)) / (Me.gvwLista.Rows.Count - 1), 2)
            End If

            vCtaInicial = (vMonto * 0.1) - vSeparacion
            With separacionVentaDetalle.Item(y)
                .separacion = vSeparacion
                If vSeparacion > vCtaInicial Then
                    .ctaInicial = 0
                    .saldoFinanciar = vMonto - vSeparacion
                Else
                    vSaldoFinanciar = vMonto - vSeparacion - vCtaInicial
                    .ctaInicial = vCtaInicial
                    .saldoFinanciar = vSaldoFinanciar
                End If
                .separacion = vSeparacion
            End With


            '-------   CUOTA / SALDO FINANCIAR   -------'          
            separacionVentaPagos = New List(Of EseparacionVentaDetallePagos)
            For x As Int16 = 1 To 2
                Dim separacionVentaPago As New EseparacionVentaDetallePagos
                With separacionVentaPago
                    .idEdificio = separacionVentaDetalle.Item(y).idEdificio
                    .idModelo = separacionVentaDetalle.Item(y).idModelo
                    .idUndInmob = separacionVentaDetalle.Item(y).idUndInmob
                    .idTpoInmueble = separacionVentaDetalle.Item(y).idTpoInmueble

                    .idEntidadFin = txtEntFinancieraCreHip.Value
                    .agencia = txtAgenciaCreHip.Value
                    .sectorista = txtSectoristaCreHip.Value
                    .idSeguimiento = 2
                    .telefono = txtTelefonoCreHip.Value
                    .observacion = txtObservacionesCreHip.Value
                    .idMoneda = selMonedaSeparacion.SelectedIndex
                    .montoPago = CType(txtMontoPago.Text, Decimal)
                    .correlativo += 1
                    .idMotivo = x                                           '1 = CUOTA | 2 = SALDO FINANCIAR
                    If x = 1 Then
                        .descMotivo = "CUOTA INICIAL"
                    ElseIf x = 2 Then
                        .descMotivo = "FINANCIAMIENTO"
                    End If
                    .cuota = 0
                End With
                separacionVentaPagos.Add(separacionVentaPago)
            Next
        Next
        Me.sDetalleSeparacionPagosCtaInicial = separacionVentaPagos
        Me.sDetalleSeparacionPagosSaldo = separacionVentaPagos
        '-------------------------------------------'

        mostrarDetalleProforma(separacionVentaDetalle)
    End Sub

    Protected Sub btnGrabarDatosTechoPropio(ByVal Monto As Decimal, ByVal Fecha As String, ByVal MontoPago As Decimal, _
                                            ByVal Estado As Int32, ByVal MontoHiden As String)

        separacionVentaDetalle = Me.sDetalleSeparacion

        Dim vMonto As Decimal = 0
        Dim vSeparacion As Decimal = 0
        Dim vTechoPropio As Decimal = 0
        Dim vCtaInicial As Decimal = 0
        Dim vSaldoFinanciar As Decimal = 0
        Dim vDiezPorciento As Decimal
        Dim vTotalMonto As Decimal = Monto
        If MontoPago = 0 Then
            Dim vPorcentajeSeparacion As Decimal = 0
            Dim vSumPorcentaje As Decimal = 0
            vDiezPorciento = 0.0 'Nos permite compara el monto máximo de separación
            For y = 0 To separacionVentaDetalle.Count - 1
                vMonto = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)
                vPorcentajeSeparacion = 0
                vSumPorcentaje += vPorcentajeSeparacion
                vSeparacion = 0
                vCtaInicial = 0
                vTechoPropio = 0
                With separacionVentaDetalle.Item(y)
                    .separacion = vSeparacion
                    vSaldoFinanciar = vMonto - vSeparacion - vCtaInicial - vTechoPropio
                    .ctaInicial = 0
                    .saldoFinanciar = vSaldoFinanciar
                    .precioVenta = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)
                    .idFormaPago = 1
                    .idEntidadFin = 1
                    .techopropio = 0
                    .idCuenta = 0
                End With
                '-------   CUOTA / SALDO FINANCIAR   -------'          
                separacionVentaPagos = New List(Of EseparacionVentaDetallePagos)
                For x As Int16 = 1 To 2
                    Dim separacionVentaPago As New EseparacionVentaDetallePagos
                    With separacionVentaPago
                        .idProyecto = Me.Master.idProyecto
                        .idEtapa = Me.Master.idEtapa
                        .fchPago = Fecha
                        .idTpoCambio = 0
                        .correlativo += 1
                        .fchCancelacion = Fecha
                        .idMotivo = x                                           '1 = CUOTA | 2 = SALDO FINANCIAR
                        If x = 1 Then
                            .montoPago = CType(vCtaInicial, Decimal)
                            .descMotivo = "CUOTA INICIAL"
                        ElseIf x = 2 Then
                            .montoPago = CType(vSaldoFinanciar, Decimal)
                            .descMotivo = "FINANCIAMIENTO"
                        End If
                        .cuota = 0
                        .idEstadoPago = 1                                         'PENDIENTE
                        .descEstadoPago = "PENDIENTE"
                        .agencia = ""
                        .sectorista = ""
                        .idSeguimiento = 0
                        .telefono = ""
                        .observacion = ""
                        .estadoCta = 0
                    End With
                    separacionVentaPagos.Add(separacionVentaPago)
                Next
            Next
            'If Not mtoPago.Equals(MontoPago) Then
            Me.sDetalleSeparacionPagosCtaInicial = separacionVentaPagos
            Me.sDetalleSeparacionPagosSaldo = separacionVentaPagos
            'End If

        Else
            vDiezPorciento = Math.Round(vTotalMonto * 0.1, 2) 'Nos permite compara el monto máximo de separación
            Dim vPorcentajeSeparacion As Decimal = 0
            Dim vSumPorcentaje As Decimal = 0
            If (vDiezPorciento >= MontoPago) Then
                For y = 0 To separacionVentaDetalle.Count - 1
                    vMonto = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)
                    vPorcentajeSeparacion = Math.Round(vMonto / vTotalMonto, 2)
                    vSumPorcentaje += vPorcentajeSeparacion
                    If y = separacionVentaDetalle.Count - 1 Then
                        If 100 <> vSumPorcentaje Then
                            vPorcentajeSeparacion += 1 - vSumPorcentaje
                        End If
                    End If
                    vSeparacion = Math.Round(MontoPago * vPorcentajeSeparacion, 2)
                    vCtaInicial = (vMonto * 0.1) - vSeparacion
                    vTechoPropio = vSeparacion
                    With separacionVentaDetalle.Item(y)
                        '.separacion = vSeparacion
                        vSaldoFinanciar = vMonto - .separacion - vCtaInicial - vTechoPropio
                        .ctaInicial = vCtaInicial
                        .saldoFinanciar = vSaldoFinanciar
                        .techopropio = vTechoPropio
                        .FechaTP = Fecha
                        .TipoTP = 0
                        .FechaVencTP = ""
                        .EstadoTP = Estado
                        .precioVenta = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)
                        '.fchPago = Fecha 'txtFchPago.Text.Trim
                        '.separacion = vSeparacion
                        .idCuenta = 0
                    End With

                    '-------   CUOTA / SALDO FINANCIAR   -------'          
                    separacionVentaPagos = New List(Of EseparacionVentaDetallePagos)
                    For x As Int16 = 1 To 2
                        Dim separacionVentaPago As New EseparacionVentaDetallePagos
                        With separacionVentaPago
                            .idProyecto = Me.Master.idProyecto
                            .idEtapa = Me.Master.idEtapa
                            .fchPago = Fecha
                            .idTpoCambio = 0
                            .correlativo += 1
                            .fchCancelacion = Fecha
                            .idMotivo = x                                           '1 = CUOTA | 2 = SALDO FINANCIAR
                            If x = 1 Then
                                .montoPago = CType(vCtaInicial, Decimal)
                                .descMotivo = "CUOTA INICIAL"
                            ElseIf x = 2 Then
                                .montoPago = CType(vSaldoFinanciar, Decimal)
                                .descMotivo = "FINANCIAMIENTO"
                            End If
                            .cuota = 0
                            .idEstadoPago = 1                                         'PENDIENTE
                            .descEstadoPago = "PENDIENTE"
                            .agencia = ""
                            .sectorista = ""
                            .idSeguimiento = 0
                            .telefono = ""
                            .observacion = ""
                            .idCuenta = 0
                            .estadoCta = 0
                        End With
                        separacionVentaPagos.Add(separacionVentaPago)
                    Next
                Next
                If Not MontoPago.Equals(MontoPago) Then
                    Me.sDetalleSeparacionPagosCtaInicial = separacionVentaPagos
                    Me.sDetalleSeparacionPagosSaldo = separacionVentaPagos
                End If
            End If
        End If
    End Sub

    Protected Sub btnGrabarDatosSep(ByVal Monto As Decimal, ByVal MontoPago As Decimal, ByVal monedaSeparacion As Int32, _
                                    ByVal formaPagoSeparacion As Int32, ByVal entidadFinSeparacion As Int32, _
                                    ByVal ctaCorrienteSeparacion As Int32, ByVal nroOperacion As String, ByVal fchPago As String, _
                                    ByVal nombreGeneradoScanSeparacion As String, ByVal nombreScanSeparacion As String, ByVal mtoPago As Decimal)
        separacionVentaDetalle = Me.sDetalleSeparacion

        Dim vMonto As Decimal = 0
        Dim vSeparacion As Decimal = 0
        Dim vCtaInicial As Decimal = 0
        Dim vSaldoFinanciar As Decimal = 0
        Dim vDiezPorciento As Decimal
        Dim vTotalMonto As Decimal = Monto
        If MontoPago = 0 Then
            'jsMensaje = "<script>javascript:alert('Se va ha registrar sin cuota inicial.');</script>)"
            Dim vPorcentajeSeparacion As Decimal = 0
            Dim vSumPorcentaje As Decimal = 0
            vDiezPorciento = 0.0 'Nos permite compara el monto máximo de separación
            For y = 0 To separacionVentaDetalle.Count - 1
                vMonto = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)
                vPorcentajeSeparacion = 0
                vSumPorcentaje += vPorcentajeSeparacion
                vSeparacion = 0
                vCtaInicial = 0
                With separacionVentaDetalle.Item(y)
                    .separacion = vSeparacion
                    vSaldoFinanciar = vMonto - vSeparacion - vCtaInicial
                    .ctaInicial = 0
                    .saldoFinanciar = vSaldoFinanciar
                    .precioVenta = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)
                    .fchPago = fchPago 'txtFchPago.Text.Trim
                    .idMoneda = monedaSeparacion
                    .idFormaPago = 1
                    .idEntidadFin = 1
                    If ctaCorrienteSeparacion = 0 Then
                        .idCuenta = 0
                    Else
                        .idCuenta = 0
                    End If
                    '.numOperacion = 0
                    .numOperacion = nroOperacion.Trim.ToUpper
                    .pagoScaneado = ""
                End With
                '-------   CUOTA / SALDO FINANCIAR   -------'          
                separacionVentaPagos = New List(Of EseparacionVentaDetallePagos)
                For x As Int16 = 1 To 2
                    Dim separacionVentaPago As New EseparacionVentaDetallePagos
                    With separacionVentaPago
                        .idProyecto = Me.Master.idProyecto
                        .idEtapa = Me.Master.idEtapa
                        .fchPago = fchPago
                        If formaPagoSeparacion > 0 Then
                            .idFormaPago = formaPagoSeparacion
                        Else
                            .idFormaPago = 0
                        End If
                        If monedaSeparacion > 0 Then
                            .idMoneda = monedaSeparacion
                        Else
                            .idMoneda = 0
                        End If
                        .idTpoCambio = 0
                        .correlativo += 1
                        .fchCancelacion = fchPago
                        .idMotivo = x                                           '1 = CUOTA | 2 = SALDO FINANCIAR
                        If x = 1 Then
                            .montoPago = CType(vCtaInicial, Decimal)
                            .descMotivo = "CUOTA INICIAL"
                        ElseIf x = 2 Then
                            .montoPago = CType(vSaldoFinanciar, Decimal)
                            .descMotivo = "FINANCIAMIENTO"
                        End If
                        .cuota = 0
                        .idEstadoPago = 1                                         'PENDIENTE
                        .descEstadoPago = "PENDIENTE"
                        If entidadFinSeparacion > 0 Then
                            .idEntidadFin = entidadFinSeparacion
                        Else
                            .idEntidadFin = 0
                        End If
                        .agencia = ""
                        .sectorista = ""
                        .idSeguimiento = 0
                        .telefono = ""
                        .observacion = ""
                        If ctaCorrienteSeparacion > 0 Then
                            .idCuenta = ctaCorrienteSeparacion
                        Else
                            .idCuenta = 0
                        End If
                        .vouchet = nroOperacion.Trim.ToUpper
                        .rutaScanner = nombreGeneradoScanSeparacion.Trim + "@" + nombreScanSeparacion.Trim
                        .estadoCta = 0
                    End With
                    separacionVentaPagos.Add(separacionVentaPago)
                Next
            Next
            'If Not mtoPago.Equals(MontoPago) Then
            Me.sDetalleSeparacionPagosCtaInicial = separacionVentaPagos
            Me.sDetalleSeparacionPagosSaldo = separacionVentaPagos
            'End If

        Else
            vDiezPorciento = Math.Round(vTotalMonto * 0.1, 2) 'Nos permite compara el monto máximo de separación
            Dim vPorcentajeSeparacion As Decimal = 0
            Dim vSumPorcentaje As Decimal = 0
            If (vDiezPorciento >= MontoPago) Then
                For y = 0 To separacionVentaDetalle.Count - 1
                    vMonto = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)
                    vPorcentajeSeparacion = Math.Round(vMonto / vTotalMonto, 2)
                    vSumPorcentaje += vPorcentajeSeparacion
                    If y = separacionVentaDetalle.Count - 1 Then
                        If 100 <> vSumPorcentaje Then
                            vPorcentajeSeparacion += 1 - vSumPorcentaje
                        End If
                    End If
                    vSeparacion = Math.Round(MontoPago * vPorcentajeSeparacion, 2)

                    vCtaInicial = (vMonto * 0.1) - vSeparacion
                    With separacionVentaDetalle.Item(y)
                        .separacion = vSeparacion
                        vSaldoFinanciar = vMonto - vSeparacion - vCtaInicial
                        .ctaInicial = vCtaInicial
                        .saldoFinanciar = vSaldoFinanciar
                        .precioVenta = CType(separacionVentaDetalle.Item(y).valorVenta, Decimal)
                        .fchPago = fchPago 'txtFchPago.Text.Trim
                        .separacion = vSeparacion
                        .idMoneda = monedaSeparacion
                        .idFormaPago = formaPagoSeparacion
                        .idEntidadFin = entidadFinSeparacion
                        If ctaCorrienteSeparacion = 0 Then
                            .idCuenta = 0
                        Else
                            .idCuenta = ctaCorrienteSeparacion
                        End If
                        .numOperacion = nroOperacion
                        .pagoScaneado = ""
                    End With

                    '-------   CUOTA / SALDO FINANCIAR   -------'          
                    separacionVentaPagos = New List(Of EseparacionVentaDetallePagos)
                    For x As Int16 = 1 To 2
                        Dim separacionVentaPago As New EseparacionVentaDetallePagos
                        With separacionVentaPago
                            .idProyecto = Me.Master.idProyecto
                            .idEtapa = Me.Master.idEtapa
                            .fchPago = fchPago
                            If formaPagoSeparacion > 0 Then
                                .idFormaPago = formaPagoSeparacion
                            Else
                                .idFormaPago = 0
                            End If
                            If monedaSeparacion > 0 Then
                                .idMoneda = monedaSeparacion
                            Else
                                .idMoneda = 0
                            End If
                            .idTpoCambio = 0
                            .correlativo += 1
                            .fchCancelacion = fchPago
                            .idMotivo = x                                           '1 = CUOTA | 2 = SALDO FINANCIAR
                            If x = 1 Then
                                .montoPago = CType(vCtaInicial, Decimal)
                                .descMotivo = "CUOTA INICIAL"
                            ElseIf x = 2 Then
                                .montoPago = CType(vSaldoFinanciar, Decimal)
                                .descMotivo = "FINANCIAMIENTO"
                            End If
                            .cuota = 0
                            .idEstadoPago = 1                                         'PENDIENTE
                            .descEstadoPago = "PENDIENTE"
                            If entidadFinSeparacion > 0 Then
                                .idEntidadFin = entidadFinSeparacion
                            Else
                                .idEntidadFin = 0
                            End If
                            .agencia = ""
                            .sectorista = ""
                            .idSeguimiento = 0
                            .telefono = ""
                            .observacion = ""
                            If ctaCorrienteSeparacion > 0 Then
                                .idCuenta = ctaCorrienteSeparacion
                            Else
                                .idCuenta = 0
                            End If
                            .vouchet = nroOperacion.Trim.ToUpper
                            .rutaScanner = nombreGeneradoScanSeparacion.Trim + "@" + nombreScanSeparacion.Trim
                            .estadoCta = 0
                        End With
                        separacionVentaPagos.Add(separacionVentaPago)
                    Next
                Next
                If Not mtoPago.Equals(MontoPago) Then
                    Me.sDetalleSeparacionPagosCtaInicial = separacionVentaPagos
                    Me.sDetalleSeparacionPagosSaldo = separacionVentaPagos
                End If
            End If
        End If
    End Sub
    Protected Sub afuFilesEscanerSeparacion_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles afuFilesEscanerSeparacion.UploadedComplete
        Dim strNomArchivo As String = e.filename
        Dim strExtension As String = strNomArchivo.Substring(strNomArchivo.LastIndexOf(".") + 1).ToLower.Trim

        If strNomArchivo.Trim.Length > 100 Then
            e.statusMessage = "El nombre del archivo no puede ser más de 100 caracteres."
            Exit Sub
        End If
        If afuFilesEscanerSeparacion.PostedFile Is Nothing Then
            e.statusMessage = " Debe seleccionar un archivo."
            Exit Sub
        End If
        If afuFilesEscanerSeparacion.PostedFile.ContentLength = 0 Then
            e.statusMessage = " No puede subir un archivo con peso cero(0)."
            Exit Sub
        End If
        If afuFilesEscanerSeparacion.PostedFile.ContentLength >= 1048576 Then
            e.statusMessage = " No puede subir un archivo mayor a 1 Mb."
            Exit Sub
        End If
        If Not (strExtension.Equals("jpg") OrElse strExtension.Equals("pdf") OrElse strExtension.Equals("gif")) Then
            e.statusMessage = " Solo puede subir archivos con extensión .jpg (JPG)| .pdf (PDF)| .gif(GIF)."
            Exit Sub
        End If

        Dim ruta As String = Server.MapPath("~/") + "gestionComercial\scanMontoSeparacion"
        Try
            Try
                Dim vNomGenerado As String = generarNombre()
                If hdfNombreScanSeparacion.Value <> vNomGenerado + "@" + Path.GetFileName(strNomArchivo) Then
                    If File.Exists(ruta + "\" + hdfNombreScanSeparacion.Value) Then
                        File.Move(ruta + "\" + hdfNombreScanSeparacion.Value, ruta + "\oldSep\" + hdfNombreScanSeparacion.Value)
                    End If
                End If
                afuFilesEscanerSeparacion.SaveAs(ruta + "\" + vNomGenerado + "@" + Path.GetFileName(strNomArchivo))
            Catch ex As Exception
                jsMensaje = "<script>javascript:alert(' No se pudo completar el proceso; intentelo nuevamente.');</script>)"
            End Try
        Catch ex As Exception
            jsMensaje = "<script>javascript:alert(' Sólo se permiten subir archivos de máximo 1 Mb.');</script>)"
        End Try
    End Sub
    Private Function generarNombre() As String
        Return Me.Master.descEmpresa.Trim + Me.Master.idProyecto.ToString + Me.Master.idEtapa.ToString + "Pago0_" + _
               Now.Day.ToString.PadLeft(2, "0") + _
               Now.Month.ToString.PadLeft(2, "0") + _
               Now.Year.ToString '+ "_" + _
    End Function
#End Region

#Region "          Cta Inicial                                  "
    Private Sub cargarEstadoCuotaDetalle()
        Dim Eestado As New Ecommons
        ddlEstadoCuotaDetalle.DataSource = Eestado.estadoMonto
        ddlEstadoCuotaDetalle.DataTextField = "descripcion"
        ddlEstadoCuotaDetalle.DataValueField = "codigo"
        ddlEstadoCuotaDetalle.DataBind()
    End Sub
    Protected Sub btnDividirCtaInicial(ByVal SaldoCta As Decimal, ByVal DividirCtaInic As Int32, _
                                       ByVal selFormaPagoCtaInic As Int32, ByVal FchInicioFormaPago As String)
        If DividirCtaInic = 0 Then
            Dim monto As Decimal = CType(SaldoCta, Decimal)
            lblTotalFormaPago.Text = "Total Cuotas Distribuidas: " + monto.ToString("#,###,##0.00")
            hdfTotalCuotaDisrtibuidaInicial.Value = monto.ToString("#,###,##0.00")
            upMontoDistribuidoInicial.Update()
            Dim nroCta As Int32 = CType(DividirCtaInic, Int32)
            Dim montoCta As Decimal = DividirCtaInic
            Dim ctaInicials As New List(Of EseparacionVentaDetallePagos)
            Dim ctaInicial As EseparacionVentaDetallePagos = Nothing

            ctaInicial = New EseparacionVentaDetallePagos
            With ctaInicial
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idFormaPago = selFormaPagoCtaInic
                .fchPago = FchInicioFormaPago
                .montoPago = monto
                .correlativo = 1
                .fchCancelacion = FchInicioFormaPago 'MPE
                .idMotivo = 1
                .descMotivo = "CUOTA INICIAL"
                .cuota = montoCta   '0
                .idEstadoPago = 1
                .descEstadoPago = "CANCELADO"
            End With
            ctaInicials.Add(ctaInicial)
            Me.sDetalleSeparacionPagosCtaInicial = ctaInicials
            gvwSeparacionPagosComercial.DataSource = ctaInicials
            gvwSeparacionPagosComercial.DataBind()
            upSeparacionPagoCtaIncial.Update()
        Else
        Dim monto As Decimal = CType(SaldoCta, Decimal)
        lblTotalFormaPago.Text = "Total Cuotas Distribuidas: " + monto.ToString("#,###,##0.00")
        hdfTotalCuotaDisrtibuidaInicial.Value = monto.ToString("#,###,##0.00")
        upMontoDistribuidoInicial.Update()
        Dim nroCta As Int32 = CType(DividirCtaInic, Int32)
        Dim montoCta As Decimal = Math.Round(monto / CType(nroCta, Int32), 2)
        Dim ctaInicials As New List(Of EseparacionVentaDetallePagos)
        Dim ctaInicial As EseparacionVentaDetallePagos = Nothing

        For x = 0 To CType(nroCta, Int32) - 1
            ctaInicial = New EseparacionVentaDetallePagos
            With ctaInicial
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idFormaPago = selFormaPagoCtaInic
                .fchPago = FchInicioFormaPago
                .montoPago = monto
                .correlativo = x + 1
                .fchCancelacion = CType(FchInicioFormaPago, DateTime).AddMonths(x) 'MPE
                .idMotivo = 1
                .descMotivo = "CUOTA INICIAL"
                .cuota = montoCta   '0
                .idEstadoPago = 1
                .descEstadoPago = "PENDIENTE"
            End With
            ctaInicials.Add(ctaInicial)
        Next
        Me.sDetalleSeparacionPagosCtaInicial = ctaInicials
        gvwSeparacionPagosComercial.DataSource = ctaInicials
        gvwSeparacionPagosComercial.DataBind()
        upSeparacionPagoCtaIncial.Update()
        End If
    End Sub
    'MPE
    Protected Sub btnGenerarCuotas(ByVal Desde As Int32, ByVal Hasta As Int32, ByVal Monto As Decimal)
        Dim wMonto As Decimal
        Dim ctaInicial As EseparacionVentaDetallePagos = Nothing
        Dim ctaInicials As New List(Of EseparacionVentaDetallePagos)

        separacionVentaPagos = Me.sDetalleSeparacionPagosCtaInicial

        wMonto = 0
        For Each ctaInicial In separacionVentaPagos
            If ctaInicial.correlativo >= Desde And ctaInicial.correlativo <= Hasta Then
                ctaInicial.cuota = Monto   '0
            End If
            wMonto = wMonto + ctaInicial.cuota
            ctaInicials.Add(ctaInicial)
        Next

        Me.sDetalleSeparacionPagosCtaInicial = ctaInicials
        gvwSeparacionPagosComercial.DataSource = ctaInicials
        gvwSeparacionPagosComercial.DataBind()
    End Sub


    Protected Sub gvwSeparacionPagosComercial_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwSeparacionPagosComercial.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes.Add("OnClick", "CallTheServer('showCtaInicDet@" + e.Row.RowIndex.ToString + "');")
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub btnAcepDistribuirCtaInicial(ByVal Monto As Decimal, ByVal MontoDistribuirCtaInicial As Decimal)
        separacionVentaDetalle = New List(Of EseparacionVentaDetalle)
        separacionVentaDetalle = Me.sDetalleSeparacion
        Dim vCtaInicial As Decimal = 0
        Dim vSaldoFinanciar As Decimal = 0

        Dim saldoCta As Decimal = 0
        For Each separacionDetalle In separacionVentaDetalle
            saldoCta = separacionDetalle.valorVenta / Monto * MontoDistribuirCtaInicial
            separacionDetalle.ctaInicial = saldoCta 'MPE
            vCtaInicial = separacionDetalle.ctaInicial
            separacionDetalle.saldoFinanciar = separacionDetalle.valorVenta - separacionDetalle.separacion - saldoCta
            vSaldoFinanciar = separacionDetalle.saldoFinanciar
        Next

        '-------------------------------------------'
        separacionVentaPagos = New List(Of EseparacionVentaDetallePagos)

        separacionVentaPagos = Me.sDetalleSeparacionPagosCtaInicial
        If separacionVentaPagos IsNot Nothing Then
            For Each sp As EseparacionVentaDetallePagos In separacionVentaPagos
                If sp.idMotivo = 1 Then
                    sp.montoPago = CType(vCtaInicial, Decimal)
                    'sp.descMotivo = "CUOTA INICIAL"
                ElseIf sp.idMotivo = 2 Then
                    sp.montoPago = CType(vSaldoFinanciar, Decimal)
                    'sp.descMotivo = "FINANCIAMIENTO"
                End If
            Next
            Me.sDetalleSeparacionPagosCtaInicial = separacionVentaPagos
        End If
        '-------------------------------------------'
        separacionVentaPagos = Me.sDetalleSeparacionPagosSaldo
        If separacionVentaPagos IsNot Nothing Then
            For Each sp As EseparacionVentaDetallePagos In separacionVentaPagos
                If sp.idMotivo = 1 Then
                    sp.montoPago = CType(vCtaInicial, Decimal)
                ElseIf sp.idMotivo = 2 Then
                    sp.montoPago = CType(vSaldoFinanciar, Decimal)
                End If
            Next
            Me.sDetalleSeparacionPagosSaldo = separacionVentaPagos
        End If


    End Sub
    Private Function cargarCtaInicSaldoFin(ByVal sepVentPags As List(Of EseparacionVentaDetallePagos)) As String
        Dim srInic As New System.IO.StringWriter()
        Dim htmInic As New HtmlTextWriter(srInic)

        Dim cuotas = From s In sepVentPags _
                     Where s.idMotivo = 1 _
                     Select s

        Dim totalCuotas = (From s In sepVentPags _
                           Where s.idMotivo = 1 _
                           Select s.cuota).Sum()

        gvwSeparacionPagosComercial.DataSource = cuotas
        gvwSeparacionPagosComercial.DataBind()
        upSeparacionPagoCtaIncial.Update()
        gvwSeparacionPagosComercial.RenderControl(htmInic)
        htmInic.Flush()

        Dim srSaldo As New System.IO.StringWriter()
        Dim htmSaldo As New HtmlTextWriter(srSaldo)

        Dim saldoFinanciar = From s In sepVentPags _
                             Where s.idMotivo = 2 _
                             Select s

        Dim totalSaldoFinanciar = (From s In sepVentPags _
                                   Where s.idMotivo = 2 _
                                   Select s.cuota).Sum()

        gvwSeparacionPagosComercialCronograma.DataSource = saldoFinanciar
        gvwSeparacionPagosComercialCronograma.DataBind()
        upSeparacionPagosComercial.Update()
        gvwSeparacionPagosComercialCronograma.RenderControl(htmSaldo)
        htmSaldo.Flush()


        If saldoFinanciar.Count > 0 Then
            Return cuotas.Count.ToString + "@@" + _
               totalCuotas.ToString() + "@@" + _
               "Total Cuotas Distribuidas: " + totalCuotas.ToString("###,###,##0.00") + "@@" + _
               srInic.ToString() + "@@" + _
               saldoFinanciar.ElementAt(0).idFormaPago.ToString + "@@" + _
               saldoFinanciar.Count.ToString + "@@" + _
               totalSaldoFinanciar.ToString() + "@@" + _
               "Total Cuotas Distribuidas: " + totalSaldoFinanciar.ToString("###,###,##0.00") + "@@" + _
               srSaldo.ToString() + "@@" + _
               saldoFinanciar.ElementAt(0).idEntidadFin.ToString + "@@" + _
               saldoFinanciar.ElementAt(0).agencia.Trim + "@@" + _
               saldoFinanciar.ElementAt(0).sectorista.Trim + "@@" + _
               cargarInstanciaSeg(saldoFinanciar.ElementAt(0).idEntidadFin.ToString) + "@@" + _
               saldoFinanciar.ElementAt(0).idSeguimiento.ToString + "@@" + _
               saldoFinanciar.ElementAt(0).telefono.Trim + "@@" + _
               saldoFinanciar.ElementAt(0).observacion.Trim
        Else
            Return cuotas.Count.ToString + "@@" + _
               totalCuotas.ToString() + "@@" + _
               "Total Cuotas Distribuidas: " + totalCuotas.ToString("###,###,##0.00") + "@@" + _
               srInic.ToString() + "@@" + _
               "0@@" + _
               saldoFinanciar.Count.ToString + "@@" + _
               totalSaldoFinanciar.ToString() + "@@" + _
               "Total Cuotas Distribuidas: " + totalSaldoFinanciar.ToString("###,###,##0.00") + "@@" + _
               srSaldo.ToString() + "@@" + _
               "0@@" + _
               " @@" + _
               " @@" + _
               cargarInstanciaSeg(0) + "@@" + _
               "0@@" + _
               " @@ "
        End If
    End Function
#End Region

#Region "          Saldo Financiar                              "
    Private Sub cargarEstadoCuotaDetalleSaldo()
        Dim Eestado As New Ecommons
        ddlEstadoCuotaDetalleSaldo.DataSource = Eestado.estadoMonto
        ddlEstadoCuotaDetalleSaldo.DataTextField = "descripcion"
        ddlEstadoCuotaDetalleSaldo.DataValueField = "codigo"
        ddlEstadoCuotaDetalleSaldo.DataBind()
    End Sub
    Protected Sub rdbInteres_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rdbInteres.SelectedIndexChanged
        If rdbInteres.SelectedIndex = 0 Then
            txtTasaAnual.Attributes.Remove("disabled")
            txtTasaMensual.Attributes.Remove("disabled")
            txtNroCtaDivirCronograma.Attributes.Remove("disabled")
        End If
    End Sub
    Protected Sub btnDividirSaldoFinac(ByVal selFormaPago As Int32, ByVal SaldoFinanciamiento As Decimal, ByVal hdfTasaAnual As Int32, _
                                       ByVal NroCtaDivirCronograma As Int32, ByVal hdfCuotaInicial As Int32, ByVal pTasaAnual As Decimal, _
                                       ByVal FchInicioFormaPagoCronograma As String, ByVal pTasaMensual As Decimal)
        If selFormaPago > 0 Then
            Dim monto As Decimal = CType(SaldoFinanciamiento, Decimal)
            lblTotalFormaPagoCronograma.Text = "Total Cuotas Distribuidas: " & monto.ToString("#,###,##0.00")
            hdfTotalCuotaDisrtibuidaSaldo.Value = monto.ToString("#,###,##0.00")
            upTotalCuotasDistribuidasSaldo.Update()
            '**********   CRONOGRAMA   **********'
            Dim vTasaAnual As Decimal = 0
            If hdfTasaAnual > 0 Then
                vTasaAnual = hdfTasaAnual
            End If

            Dim plazo As Int32 = NroCtaDivirCronograma
            Dim ctaInicial As Decimal = 0
            If hdfCuotaInicial > 0 Then
                If hdfCuotaInicial = "NaN" Then
                    hdfCuotaInicial = 0
                End If
                ctaInicial = Math.Round(Convert.ToDecimal(hdfCuotaInicial), 2)
            End If

            Dim saldo As Decimal = 0
            '*************************************
            Dim saldoFinanciars As New List(Of EseparacionVentaDetallePagos)
            Dim saldoFinanciar As EseparacionVentaDetallePagos = Nothing
            If selFormaPago.Equals("4") And rdbInteres.SelectedIndex = 0 Then
                If pTasaAnual > 0 Then
                    For x = 0 To CType(plazo, Int32) - 1
                        saldoFinanciar = New EseparacionVentaDetallePagos
                        With saldoFinanciar
                            .idProyecto = Me.Master.idProyecto
                            .idEtapa = Me.Master.idEtapa
                            .fchPago = FchInicioFormaPagoCronograma.Trim
                            .idFormaPago = selFormaPago
                            .montoPago = monto
                            .correlativo = x + 1
                            If x = 0 Then
                                .fchCancelacion = CType(FchInicioFormaPagoCronograma.Trim, DateTime)
                            Else
                                .fchCancelacion = CType(FchInicioFormaPagoCronograma.Trim, DateTime).AddDays(30 * (.correlativo - 1))
                            End If
                            .idMotivo = 2
                            .descMotivo = "FINANCIAMIENTO"
                            If rdbInteres.Items(0).Value = 1 Then
                                .conInteres = "1"
                            Else
                                .conInteres = "0"
                            End If
                            .tea = pTasaAnual
                            .tim = pTasaMensual

                            If .correlativo = 1 Then
                                saldo = monto
                            End If
                            If x = CType(plazo, Int32) - 1 Then
                                .interes = Math.Abs(Math.Round(saldo - ctaInicial, 2))
                                .amortizacion = Math.Round(ctaInicial - .interes, 2)
                                .cuota = Math.Round(ctaInicial, 2)
                                .saldo = Math.Round(saldo - .amortizacion, 2)
                                saldo = Math.Round(.saldo, 2)
                            Else
                                .interes = Math.Round(Convert.ToDecimal(vTasaAnual) * saldo, 2)
                                .amortizacion = Math.Round(ctaInicial - .interes, 2)
                                .cuota = Math.Round(ctaInicial, 2)
                                .saldo = Math.Round(saldo - .amortizacion, 2)
                                saldo = Math.Round(.saldo, 2)
                            End If
                            .estado = 1
                            .idEstadoPago = 1
                            .descEstadoPago = "PENDIENTE"
                            .idUsuario = Me.Master.idUsuario
                        End With
                        saldoFinanciars.Add(saldoFinanciar)
                    Next
                End If
            Else
                Dim montoCta As Decimal = Math.Round(monto / NroCtaDivirCronograma, 2)
                For x = 0 To NroCtaDivirCronograma - 1
                    saldoFinanciar = New EseparacionVentaDetallePagos
                    With saldoFinanciar
                        .idProyecto = Me.Master.idProyecto
                        .idEtapa = Me.Master.idEtapa
                        .fchPago = FchInicioFormaPagoCronograma.Trim
                        .idFormaPago = selFormaPago
                        .montoPago = monto
                        .correlativo = x + 1
                        If x = 0 Then
                            .fchCancelacion = CType(FchInicioFormaPagoCronograma.Trim, DateTime)
                        Else
                            .fchCancelacion = CType(FchInicioFormaPagoCronograma.Trim, DateTime).AddDays(30 * (.correlativo - 1))
                        End If
                        .idMotivo = 2
                        .descMotivo = "FINANCIAMIENTO"
                        If .correlativo = 1 Then
                            saldo = 0
                        End If
                        .conInteres = 0
                        .tea = 0
                        .tim = 0
                        .interes = 0
                        .amortizacion = 0
                        .cuota = montoCta
                        .saldo = 0
                        saldo = 0

                        .estado = 1
                        .idEstadoPago = 1
                        .descEstadoPago = "PENDIENTE"
                    End With
                    saldoFinanciars.Add(saldoFinanciar)
                Next
            End If
            gvwSeparacionPagosComercialCronograma.DataSource = saldoFinanciars
            gvwSeparacionPagosComercialCronograma.DataBind()
            Me.sDetalleSeparacionPagosSaldo = saldoFinanciars
            upSeparacionPagosComercial.Update()
        End If
    End Sub
    Protected Sub gvwSeparacionPagosComercialCronograma_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwSeparacionPagosComercialCronograma.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = "CallTheServer('showSaldoDet@" + e.Row.RowIndex.ToString + "');"
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
#End Region


#Region "          Ahorro Previo                                "
    Private Sub cargarEstadoAhorroPrevio()
        Dim Eestado As New Ecommons
        selEstAhPrev.DataSource = Eestado.estadoMonto
        selEstAhPrev.DataTextField = "descripcion"
        selEstAhPrev.DataValueField = "codigo"
        selEstAhPrev.DataBind()
        upSelEstAhPrev.Update()
    End Sub
    Private Property sAhorroPrevio() As List(Of EahorroPrevio)
        Get
            If Session("sAhorroPrevio") Is Nothing Then
                Return Nothing
            Else
                Return Session("sAhorroPrevio")
            End If
        End Get
        Set(ByVal value As List(Of EahorroPrevio))
            Session("sAhorroPrevio") = value
        End Set
    End Property
    Protected Sub gvwAhorroPrevio_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
    Handles gvwAhorroPrevio.RowCommand
        Select Case e.CommandName
            Case "Edit"
            Case "Delete"
        End Select
    End Sub
    Protected Sub gvwAhorroPrevio_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwAhorroPrevio.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwAhorroPrevio, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwAhorroPrevio_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) _
    Handles gvwAhorroPrevio.RowEditing
        Dim id As Int32 = CType(CType(gvwAhorroPrevio.Rows(e.NewEditIndex).FindControl("lnkBtnCorrelativo"), LinkButton).Text, Int32)
        txtidAhorroPrevioDetalle.Text = id
        Dim ahorroPrevios As New List(Of EahorroPrevio)
        ahorroPrevios = Me.sAhorroPrevio
        Dim LahorroPrevio = From a In ahorroPrevios _
                            Where a.correlativo = id _
                            Select a
        selEstAhPrev.Value = LahorroPrevio.ElementAt(0).estadoAhorroPrevio
        upSelEstAhPrev.Update()
        txtObsAhorroPrevio.Value = LahorroPrevio.ElementAt(0).observacion
        mpAhPrevDet.Show()
    End Sub
    Protected Sub DividirCuotasAhorroPrevio(ByVal MontoAh As Decimal, ByVal NroCuotasAhorroPrevio As Decimal, ByVal entidadFinAh As Int32, _
                                            ByVal sectoristaAh As String, ByVal fchProgramadaAh As String)
        Dim monto As Decimal = CType(MontoAh, Decimal)
        Dim montoCta As Decimal = Math.Round(monto / CType(NroCuotasAhorroPrevio, Int32), 2)
        Dim ahorroPrevios As New List(Of EahorroPrevio)
        Dim ahorroPrevio As EahorroPrevio = Nothing
        For x = 0 To CType(NroCuotasAhorroPrevio, Int32) - 1
            ahorroPrevio = New EahorroPrevio
            With ahorroPrevio
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .nroDocumento = txtNroDcmtoCliente.Value.Trim
                .EentidadFin = New EentidadFin
                .EentidadFin.idEntidadFin = entidadFinAh
                .sectorista = sectoristaAh
                .montoTotal = monto
                .fchProgramacion = txtFchProgramadaAh.Text
                .nroCtas = NroCuotasAhorroPrevio
                .correlativo = x + 1
                .fchCancelacion = CType(fchProgramadaAh, DateTime).AddDays(30 * .correlativo)
                .montoCta = montoCta
                .observacion = ""
                .estadoAhorroPrevio = 1
                .descEstadoAhorroPrevio = "PENDIENTE"
                .idUsuario = Me.Master.idUsuario
            End With
            ahorroPrevios.Add(ahorroPrevio)
        Next
        Me.sAhorroPrevio = ahorroPrevios
        gvwAhorroPrevio.DataSource = ahorroPrevios
        gvwAhorroPrevio.DataBind()
        upAhorroPrevioGrilla.Update()
    End Sub
#End Region

#Region "          Devoluciones                                 "
    Protected Sub guardarDevolucion(ByVal idSeparacion As Int32, ByVal nroDcmtoCliente As String, ByVal motDevolucion As Int32, _
                                    ByVal fechaDevolucion As String, ByVal montoDev As Decimal, ByVal idProforma As Int32)
        Dim devolucion As Edevolucion = Nothing
        For Each separacionDetalle As EseparacionVentaDetalle In Me.sDetalleSeparacion
            devolucion = New Edevolucion
            With devolucion
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = idSeparacion
                .idEdiMzn = separacionDetalle.idEdificio
                .idUndInmon = separacionDetalle.idUndInmob
                .idModelo = separacionDetalle.idModelo
                .nroDocumento = nroDcmtoCliente
                .fchSeparacionVenta = Now.ToShortDateString
                .EmotDevInmueble = New EmotDevInmueble
                .EmotDevInmueble.idMotDevInmueble = motDevolucion
                .fchDevolucion = fechaDevolucion
                .tpoGestion = 1
                .montPenalidad = montoDev
                .idProforma = idProforma
                .estado = 1
                .idUsuario = Me.Master.idUsuario
            End With
            Rdevolucion.Añadir(Me.Master.descEmpresa.Trim, devolucion)
        Next
        limpiarSession()
    End Sub
#End Region
#Region "          Guardar Fecha Minuta                               "
    Protected Sub guardarfchMinuta(ByVal idSeparacionVenta As Int32, ByVal fechaMinuta As String)
        Dim fchMinuta As EseparacionVenta = Nothing
        For Each separacionDetalle As EseparacionVentaDetalle In Me.sDetalleSeparacion
            fchMinuta = New EseparacionVenta
            With fchMinuta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = idSeparacionVenta
                .fchMinuta = fechaMinuta
                .idUsuario = Me.Master.idUsuario
            End With
            RseparacionVenta.GuardarFchMinuta(Me.Master.descEmpresa.Trim, fchMinuta)
        Next
        'limpiarSession()
    End Sub
#End Region
    Protected Sub selSistemaPago_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles selSistemaPago.SelectedIndexChanged
        If Convert.ToInt32(selSistemaPago.SelectedValue) = 0 Then
            btnAgregarDatosInmueble.Disabled = True
        ElseIf Convert.ToInt32(selSistemaPago.SelectedValue) = 1 Then
            lnkBtnSeparacionDI.Text = "Cuota Inicial"
            lnkBtnSaldoCuoInidI.Text = "Bonus"
            btnAgregarDatosInmueble.Disabled = False
        ElseIf Convert.ToInt32(selSistemaPago.SelectedValue) > 1 Then
            lnkBtnSeparacionDI.Text = "Separacion"
            lnkBtnSaldoCuoInidI.Text = "Saldo Cuota Inicial"
            btnAgregarDatosInmueble.Disabled = False
        End If
    End Sub

#Region "          CallBack                                 "
    Private _callbackArgument As String
    Public Function GetCallbackResult() As String Implements System.Web.UI.ICallbackEventHandler.GetCallbackResult
        Return _callbackArgument
    End Function
    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
        Try
            If eventArgument <> String.Empty Then
                Dim varParams() As String = eventArgument.Split("@")
                Dim sr As New System.IO.StringWriter()
                Dim sr2 As New System.IO.StringWriter()
                Dim sr3 As New System.IO.StringWriter()
                Dim htm As New HtmlTextWriter(sr)
                Dim htm2 As New HtmlTextWriter(sr2)
                Dim htm3 As New HtmlTextWriter(sr3)

                _callbackArgument = ""
                Select Case varParams(0)
                    Case "divddlProvinciaRep", "divddlProvinciaCoo", "divddlProvinciaCli", "divddlProvinciaLaboralCli", "divddlProvinciaCony", "divddlProvinciaLaboralCony"
                        Select Case varParams(0)
                            Case "divddlProvinciaRep"
                                Me.selProvinciaRepresentante.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2))
                                Me.selProvinciaRepresentante.DataTextField = "descripcion"
                                Me.selProvinciaRepresentante.DataValueField = "idUbigeo"
                                Me.selProvinciaRepresentante.DataBind()
                                Me.selProvinciaRepresentante.Value = varParams(2).ToString.Substring(2, 2)
                                Me.selProvinciaRepresentante.Attributes.Remove("disabled")
                                Me.selProvinciaRepresentante.RenderControl(htm)
                            Case "divddlProvinciaCoo"
                                Me.selProvinciaCoopropietario.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2))
                                Me.selProvinciaCoopropietario.DataTextField = "descripcion"
                                Me.selProvinciaCoopropietario.DataValueField = "idUbigeo"
                                Me.selProvinciaCoopropietario.DataBind()
                                Me.selProvinciaCoopropietario.Value = varParams(2).ToString.Substring(2, 2)
                                Me.selProvinciaCoopropietario.Attributes.Remove("disabled")
                                Me.selProvinciaCoopropietario.RenderControl(htm)
                            Case "divddlProvinciaCli"
                                Me.selProvinciaCliente.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2))
                                Me.selProvinciaCliente.DataTextField = "descripcion"
                                Me.selProvinciaCliente.DataValueField = "idUbigeo"
                                Me.selProvinciaCliente.DataBind()
                                Me.selProvinciaCliente.Value = varParams(2).ToString.Substring(2, 2)
                                Me.selProvinciaCliente.Attributes.Remove("disabled")
                                Me.selProvinciaCliente.RenderControl(htm)
                            Case "divddlProvinciaLaboralCli"
                                Me.selProvinciaLaboralCliente.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2))
                                Me.selProvinciaLaboralCliente.DataTextField = "descripcion"
                                Me.selProvinciaLaboralCliente.DataValueField = "idUbigeo"
                                Me.selProvinciaLaboralCliente.DataBind()
                                Me.selProvinciaLaboralCliente.Value = varParams(2).ToString.Substring(2, 2)
                                Me.selProvinciaLaboralCliente.Attributes.Remove("disabled")
                                Me.selProvinciaLaboralCliente.RenderControl(htm)
                            Case "divddlProvinciaCony"
                                Me.selProvinciaCony.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2))
                                Me.selProvinciaCony.DataTextField = "descripcion"
                                Me.selProvinciaCony.DataValueField = "idUbigeo"
                                Me.selProvinciaCony.DataBind()
                                Me.selProvinciaCony.Value = varParams(2).ToString.Substring(2, 2)
                                Me.selProvinciaCony.Attributes.Remove("disabled")
                                Me.selProvinciaCony.RenderControl(htm)
                            Case "divddlProvinciaLaboralCony"
                                Me.selProvinciaLaboralCony.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2))
                                Me.selProvinciaLaboralCony.DataTextField = "descripcion"
                                Me.selProvinciaLaboralCony.DataValueField = "idUbigeo"
                                Me.selProvinciaLaboralCony.DataBind()
                                Me.selProvinciaLaboralCony.Value = varParams(2).ToString.Substring(2, 2)
                                Me.selProvinciaLaboralCony.Attributes.Remove("disabled")
                                Me.selProvinciaLaboralCony.RenderControl(htm)
                        End Select
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlDistritoRep", "divddlDistritoCoo", "divddlDistritoCli", "divddlDistritoLaboralCli", "divddlDistritoCony", "divddlDistritoLaboralCony"
                        Select Case varParams(0)
                            Case "divddlDistritoRep"
                                Me.selDistritoRepresentante.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2), varParams(2).ToString.Substring(2, 2))
                                Me.selDistritoRepresentante.DataTextField = "descripcion"
                                Me.selDistritoRepresentante.DataValueField = "idUbigeo"
                                Me.selDistritoRepresentante.DataBind()
                                Me.selDistritoRepresentante.Value = varParams(2).ToString.Substring(4, 2)
                                Me.selDistritoRepresentante.Attributes.Remove("disabled")
                                Me.selDistritoRepresentante.RenderControl(htm)
                            Case "divddlDistritoCoo"
                                Me.selDistritoCoopropietario.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2), varParams(2).ToString.Substring(2, 2))
                                Me.selDistritoCoopropietario.DataTextField = "descripcion"
                                Me.selDistritoCoopropietario.DataValueField = "idUbigeo"
                                Me.selDistritoCoopropietario.DataBind()
                                Me.selDistritoCoopropietario.Value = varParams(2).ToString.Substring(4, 2)
                                Me.selDistritoCoopropietario.Attributes.Remove("disabled")
                                Me.selDistritoCoopropietario.RenderControl(htm)
                            Case "divddlDistritoCli"
                                Me.selDistritoCliente.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2), varParams(2).ToString.Substring(2, 2))
                                Me.selDistritoCliente.DataTextField = "descripcion"
                                Me.selDistritoCliente.DataValueField = "idUbigeo"
                                Me.selDistritoCliente.DataBind()
                                Me.selDistritoCliente.Value = varParams(2).ToString.Substring(4, 2)
                                Me.selDistritoCliente.Attributes.Remove("disabled")
                                Me.selDistritoCliente.RenderControl(htm)
                            Case "divddlDistritoLaboralCli"
                                Me.selDistritoLaboralCliente.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2), varParams(2).ToString.Substring(2, 2))
                                Me.selDistritoLaboralCliente.DataTextField = "descripcion"
                                Me.selDistritoLaboralCliente.DataValueField = "idUbigeo"
                                Me.selDistritoLaboralCliente.DataBind()
                                Me.selDistritoLaboralCliente.Value = varParams(2).ToString.Substring(4, 2)
                                Me.selDistritoLaboralCliente.Attributes.Remove("disabled")
                                Me.selDistritoLaboralCliente.RenderControl(htm)
                            Case "divddlDistritoCony"
                                Me.selDistritoCony.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2), varParams(2).ToString.Substring(2, 2))
                                Me.selDistritoCony.DataTextField = "descripcion"
                                Me.selDistritoCony.DataValueField = "idUbigeo"
                                Me.selDistritoCony.DataBind()
                                Me.selDistritoCony.Value = varParams(2).ToString.Substring(4, 2)
                                Me.selDistritoCony.Attributes.Remove("disabled")
                                Me.selDistritoCony.RenderControl(htm)
                            Case "divddlDistritoLaboralCony"
                                Me.selDistritoLaboralCony.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2), varParams(2).ToString.Substring(2, 2))
                                Me.selDistritoLaboralCony.DataTextField = "descripcion"
                                Me.selDistritoLaboralCony.DataValueField = "idUbigeo"
                                Me.selDistritoLaboralCony.DataBind()
                                Me.selDistritoLaboralCony.Value = varParams(2).ToString.Substring(4, 2)
                                Me.selDistritoLaboralCony.Attributes.Remove("disabled")
                                Me.selDistritoLaboralCony.RenderControl(htm)
                        End Select
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "CargarCoopropietario"
                        Dim cliente2 As New Ecliente
                        Dim pCoopropietario As List(Of Ecliente) = Me.sCoopropietarios
                        If pCoopropietario Is Nothing Then
                            pCoopropietario = New List(Of Ecliente)
                        End If
                        cliente2.nroDocumento = varParams(2).ToString
                        cliente2.EestadoCivil = New EestadoCivil
                        cliente2.desEstCivil = varParams(12).ToString.ToUpper
                        cliente2.idEstCivil = varParams(3).ToString
                        cliente2.nombre = varParams(4).ToString.ToUpper
                        cliente2.apePaterno = varParams(5).ToString.ToUpper
                        cliente2.apeMaterno = varParams(6).ToString.ToUpper
                        cliente2.nombreCompleto = varParams(4).ToString.ToUpper & " " & varParams(5).ToString.ToUpper & " " & varParams(6).ToString.ToUpper
                        cliente2.Eubigeo = New Eubigeo
                        cliente2.Eubigeo.descDepartamento = varParams(7).ToString
                        cliente2.Eubigeo.descProvincia = varParams(8).ToString
                        cliente2.Eubigeo.descDistrito = varParams(9).ToString
                        cliente2.Eubigeo.idUbigeo = varParams(7).ToString & varParams(8).ToString & varParams(9).ToString
                        cliente2.direccion = varParams(10).ToString.ToUpper
                        If varParams(11).ToString <> "" Then
                            cliente2.porcentaje = varParams(11).ToString
                        Else
                            cliente2.porcentaje = 0
                        End If
                        pCoopropietario.Add(cliente2)
                        mpCoopropietario.Hide()
                        Me.sCoopropietarios = pCoopropietario
                        Me.gvwCoopropietario.DataSource = pCoopropietario
                        Me.gvwCoopropietario.DataBind()
                        Me.gvwCoopropietario.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divListCoopropietario|CargarCoopropietario|Add|" + sr.ToString()
                    Case "CargarRepresentante"
                        Dim cliente3 As New Ecliente
                        Dim pRepresentante As List(Of Ecliente) = Me.sRepresentantes
                        If pRepresentante Is Nothing Then
                            pRepresentante = New List(Of Ecliente)
                        End If
                        cliente3.nroDocumento = varParams(2).ToString
                        cliente3.EestadoCivil = New EestadoCivil
                        cliente3.EestadoCivil.idEstCivil = selEstadoCivilCoo.SelectedIndex
                        cliente3.desEstCivil = varParams(3).ToString.ToUpper
                        cliente3.nombre = varParams(4).ToString.ToUpper
                        cliente3.apePaterno = varParams(5).ToString.ToUpper
                        cliente3.apeMaterno = varParams(6).ToString.ToUpper
                        cliente3.nombreCompleto = varParams(4).ToString.ToUpper & " " & varParams(5).ToString.ToUpper & " " & varParams(6).ToString.ToUpper
                        cliente3.Eubigeo = New Eubigeo
                        cliente3.Eubigeo.descDepartamento = varParams(7).ToString
                        cliente3.Eubigeo.descProvincia = varParams(8).ToString
                        cliente3.Eubigeo.descDistrito = varParams(9).ToString
                        cliente3.Eubigeo.idUbigeo = varParams(7).ToString + varParams(8).ToString + varParams(9).ToString
                        cliente3.direccion = varParams(10).ToString
                        pRepresentante.Add(cliente3)

                        mpCoopropietario.Hide()
                        Me.sRepresentantes = pRepresentante
                        Me.gvwRepresentante.DataSource = pRepresentante
                        Me.gvwRepresentante.DataBind()
                        Me.gvwRepresentante.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divListRepresentante|CargarRepresentante|Add|" + sr.ToString()
                    Case "divddlNroCta"
                        selCtaCorrienteSeparacion.DataSource = RctaCorriente.SeleccionarTodo(Me.Master.descEmpresa, True, CType(varParams(2), Int32))
                        selCtaCorrienteSeparacion.DataTextField = "nroCuenta"
                        selCtaCorrienteSeparacion.DataValueField = "idCuenta"
                        selCtaCorrienteSeparacion.DataBind()
                        Me.selCtaCorrienteSeparacion.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divgvwListaP", "divgvwListaS", "divgvwListaT"
                        Dim pSeparacionVenta As New EseparacionVenta With {.idProyecto = Me.Master.idProyecto, .idEtapa = Me.Master.idEtapa, .idSeparacionVenta = Convert.ToInt32(varParams(2))}
                        Dim idSeparacion As Integer = Convert.ToInt32(varParams(2))
                        Select Case varParams(0)
                            Case "divgvwListaP"
                                separacionVentaDetalle = RproformaDetalle.Filtrar(Me.Master.descEmpresa, pSeparacionVenta)
                                Me.sDetalleSeparacion = separacionVentaDetalle
                            Case "divgvwListaS"
                                separacionVentaDetalle = RseparacionVentaDetalle.Filtrar(Me.Master.descEmpresa, pSeparacionVenta)
                                'separacionVentaConyuge = RcliConyCoop.SeleccionarConyugue(Me.Master.descEmpresa, Me.Master.idUsuario)
                                'selTipoDcmtoCony.SelectedIndex = separacionVentaConyuge.

                                separacionCoopropietarios = Rcliente.filtrarCoopropietario(Me.Master.descEmpresa, Me.Master.idProyecto, Me.Master.idEtapa, idSeparacion)
                                Me.gvwCoopropietario.DataSource = separacionCoopropietarios
                                Me.gvwCoopropietario.DataBind()
                                Me.gvwCoopropietario.RenderControl(htm2)
                                htm2.Flush()

                                separacionRepresentantes = Rcliente.filtrarRepresentante(Me.Master.descEmpresa, Me.Master.idProyecto, Me.Master.idEtapa, idSeparacion)
                                Me.gvwRepresentante.DataSource = separacionRepresentantes
                                Me.gvwRepresentante.DataBind()
                                Me.gvwRepresentante.RenderControl(htm3)
                                htm3.Flush()

                                Me.sDetalleSeparacion = separacionVentaDetalle
                            Case "divgvwListaT"
                                separacionVentaDetalle = RseparacionVentaDetalle.FiltrarTemporal(Me.Master.descEmpresa, pSeparacionVenta)
                                Me.sDetalleSeparacion = separacionVentaDetalle
                        End Select
                        If Not separacionVentaDetalle Is Nothing Then
                            For Each sd As EseparacionVentaDetalle In separacionVentaDetalle
                                If Not Me.UnidadesSeleccionadas Is Nothing Then
                                    Me.UnidadesSeleccionadas += "," + sd.idEdificio.ToString.Trim + ":" + sd.idModelo.ToString.Trim + "-" + sd.idUndInmob.ToString.Trim
                                    Me.UnidadesSeleccionadas += Me.UnidadesSeleccionadas.Replace(",,", ",")
                                    Me.hfdInmueble.Value += sd.descEdificio.Trim + " " + sd.descModelo.Trim + " " + sd.descTpoInmueble.Trim + " " + sd.descUndInmob
                                Else
                                    Me.UnidadesSeleccionadas += sd.idEdificio.ToString.Trim + ":" + sd.idModelo.ToString.Trim + "-" + sd.idUndInmob.ToString.Trim
                                    Me.hfdInmueble.Value += sd.descEdificio.Trim + " " + sd.descModelo.Trim + " " + sd.descTpoInmueble.Trim + " " + sd.descUndInmob
                                End If
                            Next
                        End If
                        mostrarDetalleProforma(separacionVentaDetalle)
                        'Me.hfdInmueble.Value = UnidadesSeleccionadas.Trim
                        Me.gvwLista.DataSource = separacionVentaDetalle
                        Me.gvwLista.DataBind()
                        upInmuebles.Update()
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString.Substring(0, varParams(0).Length - 1) + "|mostrarMontoDetalle2|" + vValoresMontos + "|" + hdfNombreScanSeparacion.Value + "|" + sr2.ToString() + "|" + sr3.ToString() + "|" + sr.ToString() + "|" + Me.hfdInmueble.Value

                    Case "divgvwConyugue"
                        Dim idSeparacion As Integer = Convert.ToInt32(varParams(1))
                        separacionConyugue = Rcliente.filtrarConyugue(Me.Master.descEmpresa, Me.Master.idProyecto, Me.Master.idEtapa, idSeparacion)
                        _callbackArgument = "|divgvwConyugue|" + separacionConyugue.nroDocumento.ToString()
                    Case "divgvwAhorroPrevioS", "divgvwAhorroPrevioT"
                        Dim pSeparacionVenta As New EseparacionVenta
                        With pSeparacionVenta
                            .idProyecto = Me.Master.idProyecto
                            .idEtapa = Me.Master.idEtapa
                            .idSeparacionVenta = Convert.ToInt32(varParams(1))
                        End With
                        Dim ahorroPrevio As New List(Of EahorroPrevio)
                        Select Case varParams(0)
                            Case "divgvwAhorroPrevioS"
                                ahorroPrevio = RahorroPrevio.SeleccionarAhorroPrevio_SelXSeparacionVenta(Me.Master.descEmpresa, False, pSeparacionVenta)
                            Case "divgvwAhorroPrevioT"
                                ahorroPrevio = RahorroPrevio.SeleccionarAhorroPrevioTemporal(Me.Master.descEmpresa, False, pSeparacionVenta)
                        End Select
                        Dim valAhorroPrevio As String = Nothing
                        If ahorroPrevio IsNot Nothing Then
                            Me.sAhorroPrevio = ahorroPrevio
                            gvwAhorroPrevio.DataSource = ahorroPrevio
                            gvwAhorroPrevio.DataBind()
                            upAhorroPrevioGrilla.Update()
                            gvwAhorroPrevio.RenderControl(htm)
                            htm.Flush()
                            If ahorroPrevio.Count > 0 Then
                                valAhorroPrevio = _
                                    ahorroPrevio.Item(0).EentidadFin.idEntidadFin.ToString + "@" + _
                                    ahorroPrevio.Item(0).sectorista.Trim + "@" + _
                                    ahorroPrevio.Item(0).montoTotal.ToString("###,##0.00") + "@" + _
                                    ahorroPrevio.Item(0).fchProgramacion + "@" + _
                                    ahorroPrevio.Item(0).nroCtas.ToString
                            Else
                                valAhorroPrevio = "0@  @0.00@ @0"
                            End If
                        End If
                        _callbackArgument = valAhorroPrevio + "|divgvwAhorroPrevio|" + sr.ToString()
                    Case "dividirCuotasAhorroPrevio"
                        DividirCuotasAhorroPrevio(CType(varParams(1), Decimal), CType(varParams(2), Decimal), CType(varParams(3), Int32), _
                                                  CType(varParams(4), String), CType(varParams(5), String))
                        gvwAhorroPrevio.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divgvwAhorroPrevio" + "|" + sr.ToString()
                    Case "calMontoSep"
                        btnGrabarDatosSep(CType(varParams(1), Decimal), CType(varParams(2), Decimal), _
                                          CType(varParams(3), Int32), CType(varParams(4), Int32), CType(varParams(5), Int32), _
                                          CType(varParams(6), Int32), CType(varParams(7), String), CType(varParams(8), String), _
                                          CType(varParams(9), String), CType(varParams(10), String), CType(varParams(11), String))
                        mostrarDetalleProforma(separacionVentaDetalle)
                        Me.gvwLista.DataSource = separacionVentaDetalle
                        Me.gvwLista.DataBind()
                        upInmuebles.Update()
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divgvwLista" + "|mostrarMontoDetalle|" + vValoresMontos + "|" + hdfNombreScanSeparacion.Value + "|" + sr.ToString()
                        '///MPE
                    Case "calMontoTP"
                        btnGrabarDatosTechoPropio(CType(varParams(1), Decimal), CType(varParams(2), String), _
                                          CType(varParams(3), Decimal), CType(varParams(4), Int32), CType(varParams(5), String))
                        mostrarDetalleProforma(separacionVentaDetalle)
                        Me.gvwLista.DataSource = separacionVentaDetalle
                        Me.gvwLista.DataBind()
                        upInmuebles.Update()
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divgvwLista" + "|mostrarMontoDetalleTP|" + vValoresMontos + "|" + sr.ToString()
                    Case "generarCuotas"
                        btnGenerarCuotas(CType(varParams(1), Int32), _
                                             CType(varParams(2), Int32), CType(varParams(3), Decimal))
                        gvwSeparacionPagosComercial.RenderControl(htm)
                        htm.Flush()

                        Dim ctaInicials As New List(Of EseparacionVentaDetallePagos)
                        ctaInicials = Me.sDetalleSeparacionPagosCtaInicial

                        Dim totalCtaInicial As Decimal = 0
                        For Each cuota As EseparacionVentaDetallePagos In ctaInicials
                            If cuota.idEstadoPago = 1 Then
                                totalCtaInicial += cuota.cuota
                            End If
                        Next
                        _callbackArgument = "divgvwInicial|generarCuotasInicial|" + totalCtaInicial.ToString("#,###,##0.00") + "|" + "Total Cuotas Distribuidas: " + totalCtaInicial.ToString("#,###,##0.00") + "|divgvwInicial|" + sr.ToString()

                    Case "dividirCtaInicial"
                        btnDividirCtaInicial(CType(varParams(1), Decimal), CType(varParams(2), Int32), _
                                             CType(varParams(3), Int32), CType(varParams(4), String))
                        gvwSeparacionPagosComercial.RenderControl(htm)
                        htm.Flush()

                        Dim ctaInicials As New List(Of EseparacionVentaDetallePagos)
                        ctaInicials = Me.sDetalleSeparacionPagosCtaInicial

                        Dim totalCtaInicial As Decimal = 0
                        For Each cuota As EseparacionVentaDetallePagos In ctaInicials
                            If cuota.idEstadoPago = 1 Then
                                totalCtaInicial += cuota.cuota
                            End If
                        Next

                        _callbackArgument = "divgvwInicial|dividirCtaInicial|" + totalCtaInicial.ToString("#,###,##0.00") + "|" + "Total Cuotas Distribuidas: " + totalCtaInicial.ToString("#,###,##0.00") + "|divgvwInicial|" + sr.ToString()

                    Case "showCtaInicDet"
                        Dim id As Int32 = CType(varParams(1), Int32) + 1
                        txtIdCuotaDetalle.Text = id.ToString
                        Dim Lcuota = From v In Me.sDetalleSeparacionPagosCtaInicial _
                                     Where v.idMotivo = 1 AndAlso v.correlativo.ToString = id _
                                     Select v
                        _callbackArgument = "detInicial|showCtaInicDet|" + id.ToString + "|" + Lcuota.ElementAt(0).fchCancelacion + "|" + Lcuota.ElementAt(0).cuota.ToString
                    Case "dividirSaldoFinac"
                        btnDividirSaldoFinac(CType(varParams(1), Int32), CType(varParams(2), Decimal), CType(varParams(3), Int32), _
                                             CType(varParams(4), Int32), CType(varParams(5), Int32), CType(varParams(6), Decimal), _
                                             CType(varParams(7), String), CType(varParams(8), Decimal))
                        gvwSeparacionPagosComercialCronograma.RenderControl(htm)
                        htm.Flush()

                        Dim ctaSaldo As New List(Of EseparacionVentaDetallePagos)
                        ctaSaldo = Me.sDetalleSeparacionPagosSaldo
                        Dim totalSaldo As Decimal = 0
                        If varParams(2) = 0 Then
                            totalSaldo = 0
                        Else
                            For Each cuota As EseparacionVentaDetallePagos In ctaSaldo
                                If cuota.idEstadoPago = 1 Then
                                    totalSaldo += cuota.cuota
                                End If
                            Next
                        End If
                        _callbackArgument = "dividirSaldo|dividirSaldo|" + totalSaldo.ToString("#,###,##0.00") + "|" + "Total Cuotas Distribuidas: " + totalSaldo.ToString("#,###,##0.00") + "|divgvwSaldo|" + sr.ToString()
                    Case "showSaldoDet"
                        Dim id As Int32 = CType(varParams(1), Int32) + 1
                        txtIdCuotaDetalleSaldo.Text = id.ToString
                        Dim LsaldoFinanciar = From v In Me.sDetalleSeparacionPagosSaldo _
                                              Where v.idMotivo = 2 AndAlso v.correlativo.ToString = id _
                                              Select v
                        txtFchCuotaDetalleSaldo.Text = LsaldoFinanciar.ElementAt(0).fchCancelacion
                        txtMontoCuotaDetalleSaldo.Text = LsaldoFinanciar.ElementAt(0).cuota
                        mpCuotaDetalleSaldo.Show()
                        _callbackArgument = "detSaldo|showSaldoDet|" + id.ToString + "|" + LsaldoFinanciar.ElementAt(0).fchCancelacion + "|" + LsaldoFinanciar.ElementAt(0).cuota.ToString
                    Case "grabarCuotaDetalle"
                        Dim ctaInicials As New List(Of EseparacionVentaDetallePagos)
                        ctaInicials = Me.sDetalleSeparacionPagosCtaInicial
                        Dim Lcuota = From v In ctaInicials _
                                     Where v.idMotivo = 1 AndAlso v.correlativo = CType(varParams(1), Int32) _
                                     Select v
                        Lcuota.ElementAt(0).fchPago = varParams(2)
                        Lcuota.ElementAt(0).cuota = CType(varParams(3), Decimal)
                        Me.sDetalleSeparacionPagosCtaInicial = ctaInicials
                        gvwSeparacionPagosComercial.DataSource = ctaInicials
                        gvwSeparacionPagosComercial.DataBind()
                        Me.gvwSeparacionPagosComercial.RenderControl(htm)
                        htm.Flush()
                        Dim totalCtaInicial As Decimal = 0
                        For Each cuota As EseparacionVentaDetallePagos In ctaInicials
                            If cuota.idEstadoPago = 1 Then
                                totalCtaInicial += cuota.cuota
                            End If
                        Next
                        _callbackArgument = "saveCtaDet|saveCtaDet|" + totalCtaInicial.ToString("#,###,##0.00") + "|" + "Total Cuotas Distribuidas: " + totalCtaInicial.ToString("#,###,##0.00") + "|divgvwInicial|" + sr.ToString()
                    Case "grabarSaldoDetalle"
                        Dim saldoFinanciars As New List(Of EseparacionVentaDetallePagos)
                        saldoFinanciars = Me.sDetalleSeparacionPagosSaldo
                        Dim LsaldoFinanciar = From v In saldoFinanciars _
                                              Where v.idMotivo = 2 AndAlso v.correlativo.ToString = CType(varParams(1), Int32) _
                                              Select v
                        LsaldoFinanciar.ElementAt(0).fchPago = varParams(2)
                        LsaldoFinanciar.ElementAt(0).cuota = CType(varParams(3), Decimal)
                        Me.sDetalleSeparacionPagosSaldo = saldoFinanciars
                        gvwSeparacionPagosComercialCronograma.DataSource = saldoFinanciars
                        gvwSeparacionPagosComercialCronograma.DataBind()
                        Me.gvwSeparacionPagosComercialCronograma.RenderControl(htm)
                        htm.Flush()
                        Dim totalSaldoFinanciar As Decimal = 0
                        For Each saldoFinanciar As EseparacionVentaDetallePagos In saldoFinanciars
                            If saldoFinanciar.idEstadoPago = 1 Then
                                totalSaldoFinanciar += saldoFinanciar.cuota
                            End If
                        Next
                        _callbackArgument = "saveSaldoDet|saveSaldoDet|" + totalSaldoFinanciar.ToString("#,###,##0.00") + "|" + "Total Cuotas Distribuidas: " + totalSaldoFinanciar.ToString("#,###,##0.00") + "|divgvwSaldo|" + sr.ToString()
                    Case "divddlEstadoCreHip"
                        'MPE 2011-08-15
                        _callbackArgument = "divddlEstadoCreHip|divddlEstadoCreHip|" + varParams(1) + "|" + cargarInstanciaSeg(CType(varParams(1), Int32))
                    Case "datoCreHip"
                        Dim saldoFinanciars As New List(Of EseparacionVentaDetallePagos)
                        saldoFinanciars = Me.sDetalleSeparacionPagosSaldo
                        For Each saldo As EseparacionVentaDetallePagos In saldoFinanciars
                            With saldo
                                .idEntidadFin = CType(varParams(1), Int32)
                                .agencia = CType(varParams(2), String)
                                .sectorista = CType(varParams(3), String)
                                .idSeguimiento = CType(varParams(4), Int32)
                                .telefono = CType(varParams(5), String)
                                .observacion = CType(varParams(6), String)
                            End With
                        Next
                        Dim ch As New EseguimientoCreditoHip With {.idProyecto = Me.Master.idProyecto, .idEtapa = Me.Master.idEtapa, _
                                                                   .estadoCreditoHip = CType(varParams(4), Int32), .fchModificacion = Now.Date.ToShortDateString, _
                                                                   .Observacion = CType(varParams(6), String), .idUsuario = Me.Master.idUsuario}
                        Me.sSeguimientoCreditoHipotecario = ch
                        Me.sDetalleSeparacionPagosSaldo = saldoFinanciars
                    Case "distribuirCtaInicial"
                        btnAcepDistribuirCtaInicial(CType(varParams(1), Decimal), CType(varParams(2), Decimal))
                        mostrarDetalleProforma(separacionVentaDetalle)
                        Me.gvwLista.DataSource = separacionVentaDetalle
                        Me.gvwLista.DataBind()
                        upInmuebles.Update()
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divgvwLista" + "|mostrarMontoDetalle|" + vValoresMontos + "|" + hdfNombreScanSeparacion.Value + "|" + sr.ToString()
                    Case "detCtaInicSaldoFin"
                        Dim pSeparacionVenta As New EseparacionVenta With {.idProyecto = Me.Master.idProyecto, .idEtapa = Me.Master.idEtapa, .idSeparacionVenta = Convert.ToInt32(varParams(2))}
                        Select Case varParams(1)
                            Case "T"
                                separacionVentaDetalle = RseparacionVentaDetalle.FiltrarTemporal(Me.Master.descEmpresa, pSeparacionVenta)
                                separacionVentaPagos = RseparacionVentaDetallePagos.SeleccionarTodoTemporal(Me.Master.descEmpresa, False, pSeparacionVenta)
                            Case "S"
                                separacionVentaDetalle = RseparacionVentaDetalle.Filtrar(Me.Master.descEmpresa, pSeparacionVenta)
                                separacionVentaPagos = RseparacionVentaDetallePagos.SeleccionarTodo(Me.Master.descEmpresa, False, pSeparacionVenta)
                        End Select
                        Me.sDetalleSeparacion = separacionVentaDetalle

                        cargarCtaCorriente(Me.sDetalleSeparacion.ElementAt(0).idEntidadFin)
                        selCtaCorrienteSeparacion.RenderControl(htm)
                        htm.Flush()
                        Dim pagoScaneado As String = Nothing
                        If Me.sDetalleSeparacion.ElementAt(0).pagoScaneado = Nothing Then
                            pagoScaneado = " "
                        Else
                            pagoScaneado = Me.sDetalleSeparacion.ElementAt(0).pagoScaneado
                        End If
                        '***************************************************************************************                        
                        Me.sDetalleSeparacionPagosCtaInicial = separacionVentaPagos.FindAll(New Predicate(Of EseparacionVentaDetallePagos)(AddressOf xMotivoCta))
                        Me.sDetalleSeparacionPagosSaldo = separacionVentaPagos.FindAll(New Predicate(Of EseparacionVentaDetallePagos)(AddressOf xMotivoSaldo))
                        Dim detCtaInicial As String = _
                                    Me.sDetalleSeparacion.ElementAt(0).fchPago() + "@@" + _
                                    montoTotalSeparacion(Me.sDetalleSeparacion).ToString + "@@" + _
                                    Me.sDetalleSeparacion.ElementAt(0).idMoneda.ToString + "@@" + _
                                    Me.sDetalleSeparacion.ElementAt(0).idFormaPago.ToString + "@@" + _
                                    Me.sDetalleSeparacion.ElementAt(0).idEntidadFin.ToString + "@@" + _
                                    "divddlNroCta@@" + sr.ToString() + "@@" + _
                                    Me.sDetalleSeparacion.ElementAt(0).idCuenta.ToString + "@@" + _
                                    Me.sDetalleSeparacion.ElementAt(0).numOperacion + "@@" + _
                                    pagoScaneado + "@@" + _
                                    cargarCtaInicSaldoFin(separacionVentaPagos)
                        '***************************************************************************************
                        _callbackArgument = detCtaInicial + "|detCtaInicSaldoFin"
                        '***************************************************************************************
                    Case "guardarDevolucion"
                        guardarDevolucion(CType(varParams(1), Int32), CType(varParams(2), String), CType(varParams(3), Int32), _
                                          CType(varParams(4), String), CType(varParams(5), Decimal), CType(varParams(6), Int32))
                    Case "guardarfchMinuta"
                        guardarfchMinuta(CType(varParams(1), Int32), CType(varParams(2), String))
                    Case "SeleccionarInmueble"
                        If validarSeleccion(varParams(1).ToString) Then
                            seleccionarUnidades()
                            tblInmueble.Visible = False
                            upEdificio.Update()
                            mpConsulta.Hide()
                        Else
                            mpConsulta.Show()
                        End If
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divgvwLista" + "|mostrarMontoDetalle|" + vValoresMontos + "|" + hdfNombreScanSeparacion.Value + "|" + sr.ToString()
                    Case "EliminarInmueble"
                        Dim arr As String() = Split(varParams(1).ToString, ",")
                        separacionVentaDetalle = Me.sDetalleSeparacion
                        Dim LseparacionVentaDetalle As Generic.IEnumerable(Of EseparacionVentaDetalle) = Nothing
                        LseparacionVentaDetalle = From dp In separacionVentaDetalle _
                                            Where dp.idEdificio = CType(arr(0).ToString, Int32) AndAlso _
                                                  dp.idModelo = CType(arr(1).ToString, Int32) AndAlso _
                                                  dp.idUndInmob = CType(arr(2).ToString, Int32) _
                                            Select dp
                        separacionVentaDetalle.Remove(LseparacionVentaDetalle.ElementAt(0))
                        Dim strSeleccion As String = Me.UnidadesSeleccionadas
                        Dim strUnidad As String = arr(0).ToString() + ":" + arr(1).ToString() + "-" + arr(2).ToString()
                        If strSeleccion.Length = strUnidad.Length Then
                            strSeleccion = Nothing
                        Else
                            Dim intPosicion As Int32 = strSeleccion.IndexOf(strUnidad)
                            If intPosicion = 0 Then
                                strSeleccion = strSeleccion.Substring(strUnidad.Length + 1)
                            Else
                                Dim strParteInicio As String = strSeleccion.Substring(0, intPosicion - 1)
                                Dim strParteFin As String = strSeleccion.Substring(intPosicion + strUnidad.Length)
                                strSeleccion = strParteInicio + strParteFin
                            End If
                        End If
                        Me.UnidadesSeleccionadas = strSeleccion
                        Dim unidadEliminar As String = arr(0).ToString.Trim + ":" + _
                                                       arr(1).ToString.Trim + "-" + _
                                                       arr(2).ToString.Trim
                        If Not Me.UnidadesSeleccionadas Is Nothing Then
                            Me.UnidadesSeleccionadas = Me.UnidadesSeleccionadas.Replace(unidadEliminar + ",", "").Replace(",,", ",")
                            Me.UnidadesSeleccionadas = Me.UnidadesSeleccionadas.Replace(unidadEliminar, "").Replace(",,", ",")
                        End If
                        hdfUnidadesSeleccionadas.Value = Me.UnidadesSeleccionadas
                        mostrarDetalleProforma(separacionVentaDetalle)
                        Me.gvwLista.DataSource = separacionVentaDetalle
                        Me.gvwLista.DataBind()
                        upInmuebles.Update()
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divgvwLista" + "|mostrarMontoDetalle|" + vValoresMontos + "|" + hdfNombreScanSeparacion.Value + "|" + sr.ToString()
                    Case "EliminarCoopropietario"
                        Dim arr As String() = Split(varParams(1).ToString, ",")
                        Coopropietarios = Me.sCoopropietarios
                        Dim LCoopropietarios As Generic.IEnumerable(Of Ecliente) = Nothing
                        LCoopropietarios = From dp In Coopropietarios _
                                            Where dp.nroDocumento = CType(arr(0).ToString, Int32) _
                                            Select dp
                        Coopropietarios.Remove(LCoopropietarios.ElementAt(0))
                        Me.sCoopropietarios = Coopropietarios
                        Me.gvwCoopropietario.DataSource = Coopropietarios
                        Me.gvwCoopropietario.DataBind()
                        Me.gvwCoopropietario.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divListCoopropietario|CargarCoopropietario|Add|" + sr.ToString()
                    Case "EliminarRepresentante"
                        Dim arr As String() = Split(varParams(1).ToString, ",")
                        Representantes = Me.sRepresentantes
                        Dim LRepresentantes As Generic.IEnumerable(Of Ecliente) = Nothing
                        LRepresentantes = From dp In Representantes _
                                            Where dp.nroDocumento = CType(arr(0).ToString, Int32) _
                                            Select dp
                        Representantes.Remove(LRepresentantes.ElementAt(0))
                        Me.sRepresentantes = Representantes
                        Me.gvwRepresentante.DataSource = Representantes
                        Me.gvwRepresentante.DataBind()
                        Me.gvwRepresentante.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divListRepresentante|CargarRepresentante|Add|" + sr.ToString()
                    Case "divNuevaSeparacion"
                        limpiarSession()
                    Case "divMostrar"
                        Dim pIdProyecto As Int32 = Me.Master.idProyecto
                        Dim pIdEtapa As Int32 = Me.Master.idEtapa
                        Dim selTpoInmueble As Int32 = varParams(1)
                        Dim edificios As List(Of EedificioManz) = RedificioManz.SeleccionarTodo(Me.Master.descEmpresa, False, pIdProyecto, pIdEtapa, selTpoInmueble)
                        Dim inmuebles As List(Of EunidInmobiliarias) = RunidInmobiliarias.SeleccionarTodoXAll(Me.Master.descEmpresa, False, pIdProyecto, pIdEtapa)
                        Dim mensaje As New StringBuilder
                        mensaje.EnsureCapacity(5000)
                        Dim pisos As Integer = 0
                        Dim piso As Integer = 0
                        tblInmueble.BorderWidth = 2
                        tblInmueble.BackColor = Drawing.Color.FromArgb(244, 244, 244)
                        tblInmueble.BorderColor = Drawing.Color.FromArgb(147, 147, 147)
                        Dim tc1 As Integer = 0
                        Dim tr As New TableRow()
                        For tc1 = 0 To edificios.Count - 1
                            Dim tc As New TableCell()
                            Dim tInterna As New Table With {.BorderWidth = 1, .CellSpacing = 0, .CellPadding = 0, .BackColor = Drawing.Color.FromArgb(244, 244, 244), .BorderColor = Drawing.Color.FromArgb(147, 147, 147), .BorderStyle = BorderStyle.Fixed3D}
                            Dim f As New TableRow With {.TableSection = TableRowSection.TableHeader, .CssClass = "captionInmueble"}
                            Dim c As New TableCell With {.ColumnSpan = 10, .Text = edificios.ElementAt(tc1).nomEdiMzn, .HorizontalAlign = HorizontalAlign.Center}
                            f.Controls.Add(c)
                            tInterna.Controls.Add(f)
                            '********** Numero de inmueble por piso ****************************'            
                            Dim qtInmubXPiso = From d In inmuebles _
                                               Where d.idEdiMzn = edificios.Item(tc1).idEdiMzn _
                                               Order By d.nroPiso _
                                               Group d By d.nroPiso _
                                               Into Count()
                            '********** Recorre los inmuebles dependiendo del edificio *********'            
                            Dim qtInmubles = From d In inmuebles _
                                             Where d.idEdiMzn = edificios.Item(tc1).idEdiMzn _
                                             Order By d.nroPiso
                            '*******************************************************************'
                            For ff As Integer = qtInmubXPiso.Count - 1 To 0 Step -1
                                Dim fila As New TableRow
                                fila.Height = 3
                                fila.Width = 7
                                fila.BorderColor = Drawing.Color.FromArgb(147, 147, 147)
                                fila.BorderWidth = 1
                                fila.BorderStyle = BorderStyle.Fixed3D
                                For Each inmub In qtInmubles
                                    piso = inmub.nroPiso
                                    If piso = qtInmubXPiso(ff).nroPiso Then
                                        Dim columna As New TableCell
                                        columna.BorderColor = Drawing.Color.FromArgb(147, 147, 147)
                                        columna.BorderWidth = 1
                                        columna.BorderStyle = BorderStyle.Fixed3D
                                        Dim tableColor As New Table
                                        tableColor.CellPadding = 0
                                        tableColor.CellSpacing = 0
                                        tableColor.HorizontalAlign = HorizontalAlign.Center
                                        Dim tcfLeyenda As New TableRow
                                        tcfLeyenda.Width = 50%
                                        tcfLeyenda.Height = 6
                                        Dim tccLeyenda As New TableCell
                                        Dim tcFila As New TableRow
                                        Dim tcColm As New TableCell
                                        Select Case inmub.EestadoInmueble.idEstadoInmueble & inmub.tpoGestion
                                            Case estadoInmueble.separacion & "1"
                                                tcColm.CssClass = "UnidadesSeparacion"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.ctaInicial & "1"
                                                tcColm.CssClass = "UnidadesSinMinuta"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.financiamiento & "1"
                                                tcColm.CssClass = "UnidadesSinMinuta"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.cancelada & "1"
                                                tcColm.CssClass = "UnidadesSinMinuta"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.inic_fincCancelado & "1"
                                                tcColm.CssClass = "UnidadesSinMinuta"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.separacion & "2"
                                                tcColm.CssClass = "UnidadesNegociado"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.ctaInicial & "2"
                                                tcColm.CssClass = "UnidadesNegociado"
                                                tccLeyenda.CssClass = "ctaInicial"
                                            Case estadoInmueble.financiamiento & "2"
                                                If inmub.idFormaPago <> 3 Then
                                                    tcColm.CssClass = "UnidadesNegociado"
                                                    tccLeyenda.CssClass = "financiamiento"
                                                Else
                                                    tcColm.CssClass = "UnidadesNegociado"
                                                    tccLeyenda.CssClass = "financiamientoDirecto"
                                                End If
                                            Case estadoInmueble.inic_fincCancelado & "2"
                                                tcColm.CssClass = "UnidadesNegociado"
                                                tccLeyenda.CssClass = "ctaInicial_FinacCancelado"
                                            Case estadoInmueble.cancelada & "2"
                                                tcColm.CssClass = "UnidadesCancelada"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.entregado & "2"
                                                tcColm.CssClass = "UnidadesEntregada"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.temporal & "0"
                                                tcColm.CssClass = "UnidadesTemporal"
                                                tccLeyenda.CssClass = ""
                                            Case estadoInmueble.venta & "2"
                                                tcColm.CssClass = "UnidadesNegociado"
                                                tccLeyenda.CssClass = ""
                                            Case Else
                                                If inmub.bloqueado = 1 Then
                                                    tcColm.CssClass = "UnidadesBloqueado"
                                                    tccLeyenda.CssClass = ""
                                                Else
                                                    tcColm.CssClass = "UnidadesDisponibles"
                                                    tccLeyenda.CssClass = ""
                                                End If
                                        End Select
                                        mensaje.Append(inmub.descTpoInmueble.Trim & "&nbsp;[N°&nbsp;" & inmub.nroInmueble.Trim)
                                        'mensaje.Append("]*Precio:&nbsp;" & inmub.valorVenta.ToString.Trim)
                                        mensaje.Append("]*Precio:&nbsp;" & inmub.valorVenta.ToString("#,###,##0.00"))
                                        mensaje.Append("*Moneda:" & inmub.descMoneda.Trim)
                                        If inmub.bloqueado = 1 Then
                                            mensaje.Append("*Estado:&nbsp;BLOQUEADO")
                                        Else
                                            mensaje.Append("*Estado:&nbsp;" & inmub.EestadoInmueble.descEstadoInmueble.Trim)
                                        End If
                                        mensaje.Append("*Cliente:&nbsp;" & inmub.clienteVenta.Trim)
                                        mensaje.Append("*Número&nbsp;de&nbsp;baño:&nbsp;" & inmub.EmodeloInmueble.nroBaños.ToString)
                                        mensaje.Append("*Número&nbsp;de&nbsp;habitación:&nbsp;" & inmub.EmodeloInmueble.nroHabitaciones.ToString)
                                        mensaje.Append("*Área&nbsp;construida:&nbsp;" & inmub.areaConstruida.ToString)
                                        mensaje.Append("*Área&nbsp;Terraza&nbsp;Jardin:&nbsp;" & inmub.areaVendible.ToString)
                                        mensaje.Append("*Tiene&nbsp;patio&nbsp;/&nbsp;jardín&nbsp;/&nbsp;terraza:&nbsp;")
                                        Select Case inmub.EmodeloInmueble.patioJardin
                                            Case 0 : mensaje.Append("NO")
                                            Case 1 : mensaje.Append("SI")
                                        End Select
                                        mensaje.Append("*Área&nbsp;patio&nbsp;/&nbsp;jardín&nbsp;/&nbsp;terraza:&nbsp;" & inmub.EmodeloInmueble.areaPatio.ToString)
                                        If tccLeyenda.CssClass.Length > 0 Then
                                            tcfLeyenda.Cells.Add(tccLeyenda)
                                            tableColor.Rows.Add(tcfLeyenda)
                                        End If
                                        If inmub.EestadoInmueble.idEstadoInmueble = estadoInmueble.disponible AndAlso inmub.bloqueado = 0 Then
                                            Dim chk As New System.Web.UI.HtmlControls.HtmlInputCheckBox
                                            chk.ID = "checkBox" & inmub.idEdiMzn.ToString.Trim _
                                                               & inmub.EmodeloInmueble.idModelo.ToString.Trim _
                                                               & inmub.idUndInmob.ToString.Trim _
                                                               & inmub.nroInmueble.Trim
                                            chk.Attributes.Add("onclick", "seleccionarUnidad(" + inmub.idEdiMzn.ToString.Trim + "," _
                                                                                               + inmub.EmodeloInmueble.idModelo.ToString.Trim + "," _
                                                                                               + inmub.idUndInmob.ToString.Trim + ",this)")
                                            tcColm.Controls.Add(chk)
                                            Dim literal As New LiteralControl
                                            literal.Text = inmub.nroInmueble.Trim
                                            tcColm.Controls.Add(literal)
                                        Else
                                            tcColm.Text = inmub.nroInmueble.Trim
                                        End If
                                        tcFila.Cells.Add(tcColm)
                                        tableColor.Rows.Add(tcFila)
                                        columna.Controls.Add(tableColor)
                                        columna.Attributes.Add("onmouseover", "showMsg(this,'" & mensaje.ToString & "',event)")
                                        columna.Attributes.Add("onmouseout", "hideMsg()")
                                        fila.Cells.Add(columna)
                                        mensaje.Length = 0
                                    End If
                                Next
                                tInterna.Controls.Add(fila)
                            Next
                            tc.Controls.Add(tInterna)
                            tc.VerticalAlign = VerticalAlign.Top
                            tr.Cells.Add(tc)
                            tblInmueble.Rows.Add(tr)
                        Next tc1
                        upEdificio.Update()
                        Me.tblInmueble.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|divMostrar|" + sr.ToString()
                End Select
            End If
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
#End Region

    Protected Sub lkbSaldoCta_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lkbSaldoCta.Click

    End Sub
End Class